我使用基本帖子来添加帖子。存在5类(cat\\U A、cat\\U B、cat\\U C、cat\\U D、cat\\U E)。我有两个用于注册访问者的自定义user\\u角色,即“viewer\\u a”和“viewer\\u b”。我需要只显示特定用户角色的选定类别帖子。
因此,“viewer\\u a”下的用户只能查看cat\\u a帖子,而“viewer\\u B”下的用户只能查看cat\\u B帖子。严格限制其他岗位。
没有插件我怎么做?
我使用基本帖子来添加帖子。存在5类(cat\\U A、cat\\U B、cat\\U C、cat\\U D、cat\\U E)。我有两个用于注册访问者的自定义user\\u角色,即“viewer\\u a”和“viewer\\u b”。我需要只显示特定用户角色的选定类别帖子。
因此,“viewer\\u a”下的用户只能查看cat\\u a帖子,而“viewer\\u B”下的用户只能查看cat\\u B帖子。严格限制其他岗位。
没有插件我怎么做?
如果使用全局循环来显示帖子,那么可以使用pre_get_posts
行动
function restrict_categories_for_user( $query ) {
if ( ! is_admin() && $query->is_main_query() && get_current_user_id() ) {
$user = wp_get_current_user();
if ( in_array( \'viewer_a\', (array) $user->roles ) ) {
// The user has the "viewer_a" role
$query->set( \'category_name\', \'cat_A\' ); // <- use category slug here
}
if ( in_array( \'viewer_b\', (array) $user->roles ) ) {
// The user has the "viewer_b" role
$query->set( \'category_name\', \'cat_B\' ); // <- use category slug here
}
}
}
add_action( \'pre_get_posts\', \'restrict_categories_for_user\' );
我假设您想限制这些用户可以在前端查看哪些帖子。如果要限制在后端可见的帖子,则必须更改此条件if ( ! is_admin() && $query->is_main_query() && get_current_user_id() ) {
照着我最近尝试学习为我的自定义主题创建一个主题选项页面,这是按照stackoverflow和其他资源的教程进行的。但脚本显示错误if ($_GET[\'page\'] == basename(__FILE__)) { if (\'save\' == $_REQUEST[\'formaction\']) { foreach ($options as $value) { if( isset( $_REQUEST[ $value[\'id\']