2017-08-09 43 views
0

我正在爲此搜索WordPress代碼,但我似乎無法找到關於此問題的任何文章。WordPress多站點 - (de)激活站點操作

當您安裝WordPress多站點並以superadmin登錄時,您可以存檔,(de)激活和刪除站點。然而,這是來自安裝的「網絡」部分,只有superadmin才能看到。我想在每個網站的儀表板中放置(de)激活選項,以便特定的(非(超)管理員)角色可以使用它們。

我想知道,是否有一個功能,我可以用來顯示(德)激活(取決於當時的網站是否活動/停用)鏈接我想要的?

如果沒有,關於某個網站是否處於活動狀態或未存儲的信息在哪裏?我希望有一個布爾型的選項,但我似乎無法找到它。這樣我可以檢查自己,如果一個網站是否有效,並根據顯示正確的鏈接?

對不起,如果我的問題不清楚或混淆。

在此先感謝!

+1

檢查是否可以幫助https://www.role-editor.com/wordpress-multisite-super-admin-特權/ –

+0

謝謝。但那不是我想要實現的,我不想讓這個角色訪問'網絡'部分。我只想顯示每個mu上的(de)激活鏈接,對於該角色可見:) – Maartje

+0

找到這兩個動作功能:https://developer.wordpress.org/reference/hooks/deactivate_blog/和https:// developer .wordpress.org/reference/hooks/activate_blog /。現在我只是尋找一些功能或選項來查看該網站是否處於活動狀態。就像is_active_mu? – Maartje

回答

0

對於我所使用的特定用戶名的權利:

//give the right to deactivate sites to 'username' if the user doesn't have it already 
$user = new WP_User('username'); 
if (! $user->has_prop('can_manage_sites')) { 
    $user->add_cap('can_manage_sites'); 
} 
if (! $user->has_prop('username')) { 
    $user->add_cap('manage_sites'); 
} 

//ofcourse replace 'username' with the username you need 

在我看來,我只是使用if語句來檢查網站是否激活或不知道要使用哪個鏈接(激活/停用)

//deactivated, show activate link 
if(get_blog_status($site->blog_id, 'deleted') == '1'){ 
    echo '<span class="dashicons dashicons-no" style="color:red;"></span> Niet actief <br/>'; 
    echo '<a href="' . esc_url(wp_nonce_url(network_admin_url('sites.php?action=confirm&amp;action2=activateblog&amp;id=' . $site->blog_id), 'activateblog_' . $site->blog_id)) . '">' . __('Activate') . '</a>'; 
} 
//activated, show deactivate link 
else { 
    echo '<span class="dashicons dashicons-yes" style="color: green;"></span> Actief<br/>'; 
    echo '<a style="color:red;" href="' . esc_url(wp_nonce_url(network_admin_url('sites.php?action=confirm&amp;action2=deactivateblog&amp;id=' . $site->blog_id), 'deactivateblog_' . $site->blog_id)) . '">' . __('Deactivate') . '</a>'; 
} 

此代碼會爲您提供您需要的鏈接(de)激活網站,您將會看到一個確認頁面。在此確認頁面中,用戶可以在菜單中看到一個'sites'標籤,當他們點擊它時有mu中所有網站的選項。這對我來說並不重要,因爲將使用此功能的人是同事,並且知道他們不應該去那裏。 但是你可能想要隱藏,如果它涉及那些不應該能夠看到的人

1

取消激活站點,只需在其上添加已刪除的屬性即可。網站管理員可以通過訪問工具 - >刪除網站來實現這一點。它只是有點不同,因爲如果從那裏點擊用戶,它也會將用戶從網站中刪除(但將來可能會這樣做)。

您可以使用此功能,看是否與ID 2例如一個網站的屬性中刪除(因此被停用):

if (get_blog_status(2, 'deleted') == 1) { 
    // The site with ID 2 is marked as deleted (it is deactivated) 
}