Wordpress:仅显示某些作者的页面

im9ewurl  于 2023-10-17  发布在  WordPress
关注(0)|答案(4)|浏览(112)

我正试图使它,使我可以去只有某些作者的网页,和重定向将工作的休息。我试图通过is_author来实现这一点,但它不接受Meta参数,并且无法理解!也许有人知道如何解决这个问题。谢谢你,谢谢!
我在function.php中尝试了这个方法:

function redirect_author_page() {
    global $wp_query;
    
    if (is_author($author != array('name1', 'name2'))) {
        wp_safe_redirect(get_option('home'), 301); 
        exit; 
    }
}

add_action('template_redirect', 'redirect_author_page');
0md85ypi

0md85ypi1#

根据函数is_author的文档中的示例,

if (is_author(array('name1', 'name2'))) {
  // do this
} else {
  // do that
}
tgabmvqs

tgabmvqs2#

!=表示不相等,但在本例中不起作用。如果你想在is_author()的情况下使用它,你应该在开头添加“not”。您还需要用逗号分隔参数。

if (!is_author($author, array('name1', 'name2')) && !is_home()) {
    wp_safe_redirect(get_option('home'), 301); 
    exit; 
}
xsuvu9jc

xsuvu9jc3#

解决方案是这样的:
function redirect_author_page(){ global $wp_query;

global $authordata;

$author_roles = $authordata->roles;
$author_role = array_shift($author_roles);

if ( is_author($author_role != 'role_name' )) {
    $wp_query->set_404();
    status_header( 404 );
    get_template_part( 404 ); 
    exit();
}

所需的作者被分配了一个特定的角色,然后对于所有不等于它的角色,显示一个404页面(或者任何您需要的页面,但在示例中,是一个404页面)。Marsellus和IT Goldman,感谢您的帮助!

mwyxok5s

mwyxok5s4#

我想你可以试试这样的:

function redirect_author_page() {
    global $wp_query;
    
    if (!is_author(array('name1', 'name2')) && is_single()) {
        wp_safe_redirect(get_option('home'), 301); 
        exit; 
    }
}

add_action('template_redirect', 'redirect_author_page');

相关问题