WordPress提供了好幾種用戶角色,不同角色擁有不同的權(quán)限,有的角色能訪問網(wǎng)站后臺(tái),有的不能。如何讓除了管理員都不能訪問網(wǎng)站后臺(tái)呢?一共有兩個(gè)方案。第一個(gè)就是移除角色的某些權(quán)限,第二個(gè)方法就是將除了管理員的用戶重定向,下面看看實(shí)現(xiàn)代碼。
/*
* 重置非管理員用戶到首頁
*/
function redirect_non_admin_users() {
if ( ! current_user_can( 'manage_options' ) && '/wp-admin/admin-ajax.php' != $_SERVER['PHP_SELF'] ) {
wp_redirect( home_url() );
exit;
}
}
add_action( 'admin_init', 'redirect_non_admin_users' );
將上面的代碼添加到你的主題functions.php文件中即可,為了方便,也可以做成插件,插件代碼如下。
<?php
/*
Plugin Name: WordPress只允許管理員訪問后臺(tái)
Description: WordPress只允許管理員訪問后臺(tái)的一款插件。
Version: 1.0.0
*/
//插件菜單
add_action('admin_menu', 'dmd_htpb_submenu');
function dmd_htpb_submenu() {
add_options_page(__('后臺(tái)屏蔽設(shè)置'), __('后臺(tái)屏蔽設(shè)置'), 'administrator', 'dmd-htpb-plugin', 'add_dmd_htpb_submenu');
}
//插件配置頁面
function add_dmd_htpb_submenu() {
if($_POST['dmd_htpb_hidden'] == 'y') {
update_option('dmd_htpb_url',$_POST['dmd_htpb_url']);
?>
<div id="message" style="background-color: green; color: #ffffff;">保存成功 !</div>
<?php
}
?>
<div>
<h2>后臺(tái)屏蔽設(shè)置</h2>
<form action="" method="post" id="my_plugin_htpb_form">
<p>
<label for="dmd_htpb_options">重定向地址:</label>
</p>
<p>
<input name="dmd_htpb_url" style="min-width: 300px;" id="dmd_htpb_url" value="<?php echo esc_attr(get_option('dmd_htpb_url'))?>"/>
</p>
<p>
<input type="submit" name="submit" value="保存" class="button button-primary" />
<input type="hidden" name="dmd_htpb_hidden" value="y" />
</p>
</form>
</div>
<?php
}
//后臺(tái)屏蔽
function redirect_non_admin_users() {
if ( ! current_user_can( 'manage_options' ) && '/wp-admin/admin-ajax.php' != $_SERVER['PHP_SELF'] ) {
$url=get_option('dmd_htpb_url');
if(!$url){
$url=home_url();
}
wp_redirect($url);
exit;
}
}
add_action( 'admin_init', 'redirect_non_admin_users' );
?>
到插件目錄中新建一個(gè)文件夾,隨意命名,然后復(fù)制上面的代碼到插件目錄中新建一個(gè)文件并保存,隨意命名,后綴.php即可。