WordPress Multisite -(取消)激活站点操作

WordPress Multisite - (de)activate site action

我正在为此搜索 WordPress 法典,但似乎找不到关于此问题的任何文章。

当您安装了 WordPress 多站点并以超级管理员身份登录后,您就可以存档、(取消)激活和删除站点。然而,这是来自安装的 'network' 部分,只有超级管理员可以看到。我也想在每个站点的仪表板中放置(取消)激活选项,以便特定的(非(超级)管理员)角色可以使用它们。

我想知道,是否有一个功能可以用来显示(取消)激活(取决于网站当时是否 active/deactive)link ?

如果没有,有关站点是否处于活动状态的信息存储在哪里?我希望有一个带有布尔值的选项,但我似乎找不到它。这样我就可以检查自己的网站是否处于活动状态,并根据该显示正确 link?

抱歉,如果我的问题不清楚或令人困惑。

提前致谢!

停用站点,只是在其上添加已删除的属性。站点管理员已经可以通过访问工具 -> 删除站点来做到这一点。它只是有点不同,因为如果从那里单击它,它也会从站点中删除用户(尽管将来可能会相同)。

您可以使用此功能查看例如 ID 为 2 的网站是否删除了属性(因此它已停用):

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

对于我使用的特定用户名权限:

//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

在我看来(循环 mu 站点)我只是使用 if 语句来检查站点是否处于活动状态以了解 link 使用什么 (activate/deactivate)

//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>';
}

此代码将为您提供 link 您需要(取消)激活该站点,这将使您进入 confirmationpage.In 此确认页面,用户可以在菜单中看到“站点”选项卡, 当他们单击它时,他们可以选择 mu 中的所有站点。这对我来说无关紧要,因为将要使用此功能的人都是大学生,并且知道他们不应该去那里。 但如果它涉及那些不应该看到的人,您可能想要隐藏它