وردپرس قسمت شصت و سوم

وردپرس قسمت شصت و سوم

توجه به یاد داشته باشید، افزودن و حذف کاربران از یک سایت در Multisite در واقع ایجاد یا حذف کاربر در وردپرس نیست، بلکه در عوض اضافه کردن یا حذف آنها به عنوان عضوی از آن سایت است.
یکی دیگر از عملکردهای مفید هنگام کار با کاربران Multisite، get_blogs_of_user() است. این تابع اطلاعات سایت را برای تمام سایت هایی که کاربران مشخص شده عضو آن هستند بازیابی می کند.
<?php
$user_id = 1;
$user_sites = get_blogs_of_user( $user_id );
print_r( $user_sites );
?>
اجرای این مثال کد منجر به بازگشت یک آرایه شی می شود، همانطور که در اینجا نشان داده شده است:
Array
(
[1] => stdClass Object
(
[userblog_id] => 1
[blogname] => Main Site
[domain] => example.com
[path] => /
[site_id] => 1
[siteurl] => http://example.com
)
[2] => stdClass Object
(
[userblog_id] => 2
[blogname] => Halloween Revenge
[domain] => example.com
[path] => /myers/
[site_id] => 1
[siteurl] => http://example.com/myers
)
[8] => stdClass Object
(
[userblog_id] => 8
[blogname] => Freddy Lives
[domain] => example.com
[path] => /kruger/
[site_id] => 1
[siteurl] => http://example.com/kruger
)
)
شما همچنین می توانید یک حلقه foreach برای نمایش داده های خاص از آرایه انجام دهید.
<?php
$user_id = 1;
$user_sites = get_blogs_of_user( $user_id );
foreach ( $user_sites as $user_site ) {
echo '<p>' . $user_site->siteurl . '</p>';
}
?>

سوپر ادمین

Multisite یک نقش شبه کاربر را ارائه می دهد: Super Administrator. ادمین‌های فوق‌العاده به بخش‌های مدیریت کل نصب وردپرس، از جمله یکی خاص برای شبکه، دسترسی دارند. ادمین شبکه جایی است که تمام تنظیمات شبکه، تم ها، پلاگین ها و غیره مدیریت می شوند. سوپر ادمین ها نیز کنترل کاملی بر هر سایت در شبکه دارند، در حالی که یک مدیر معمولی می تواند فقط سایت های خاص خود را مدیریت کند.
در Multisite، با استفاده از تابع ()grant_ super_admin می توانید به راحتی یک کاربر موجود را به نقش super admin اختصاص دهید. این تابع تنها یک پارامتر را می‌پذیرد که همان شناسه کاربری است که می‌خواهید به آن امتیازات super admin بدهید.
<?php
$user_id = 4;
grant_super_admin( $user_id );
?>
به همان سرعتی که می توانید امتیازات super admin را اعطا کنید، می توانید به راحتی با استفاده از تابع revoke_super_admin () آنها را لغو کنید. این تابع همچنین تنها یک پارامتر را می پذیرد که همان شناسه کاربری برای لغو به عنوان super admin است.
<?php
$user_id = 4;
revoke_super_admin( $user_id );
?>
هر دوی این توابع در wp-admin/includes/ms.php قرار دارند. این بدان معناست که این توابع به طور پیش‌فرض در قسمت عمومی سایت شما در دسترس نیستند و فقط در قسمت مدیریت قابل استفاده هستند. به عنوان مثال، اگر سعی کنید یکی از این توابع را با یک کد کوتاه فراخوانی کنید، با خطای Call to Undefined Function PHP مواجه خواهید شد.
برای فهرست کردن همه super admin ها در Multisite، از تابع get_super_admins() استفاده کنید. این تابع آرایه‌ای از نام‌های کاربری super admin را در شبکه شما برمی‌گرداند.
<?php
$all_admins = get_super_admins();
print_r( $all_admins );
?>
با این کار، آرایه زیر از سوپر ادمین ها برمی گردد:
Array
(
[0] => admin
[1] => brad
)