2017-08-09 46 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) 
}