在插件文件夹中创建一个子文件夹,将其命名为“MyRestict”。在此文件夹中放置以下php:
<?php
/**
* Plugin Name: My Restict
* Plugin URI: http://wordpress.stackexchange.com/questions/112566/how-to-set-different-users-for-different-pages
* Author: G.M.
*/
function my_restict_template_filter( $template ) {
if ( is_page() ) {
$post = get_queried_object();
$allowed = (string) get_post_meta($post->ID, \'allowed_users\', true);
if ( $allowed ) $allowed = array_map(\'trim\', explode(\',\', $allowed) );
$user = wp_get_current_user();
if ( ! empty($allowed) && ( ! is_object($user) || ! in_array($user->ID, $allowed) ) )
return plugin_dir_path(__FILE__) . \'not-allowed.php\';
}
return $template;
}
add_filter(\'template_include\', \'my_restict_template_filter\');
在同一个“MyRestict”文件夹中创建一个名为
not-allowed.php
上面写着:
<div>Sorry, you are not allowed to view this page.</div>
在页面中,必须使用键创建自定义字段
allowed_users
您必须在其中编写逗号分隔的
users ids 要允许查看该页面的用户数:
激活后端的“我的Restict”插件
请记住,所有访问者都可以访问没有任何自定义字段的页面,即使没有登录的访问者也可以访问。