我也遇到过类似的情况(比如说,客户希望在准备好让公众看到自定义帖子类型和/或分类法之前了解其行为)。在这些情况下,我将使用类似以下代码片段的内容,添加到插件文件(假设我已将CPT/分类法构建为插件)或直接在活动主题的函数中。php:
/**
* IN-DEVELOPMENT REDIRECTS
* While specified areas are under development, redirect users to home page if not logged in
*/
add_filter( \'wp\', \'f040925b_redirect\', 0 );
function f040925b_redirect( $content ) {
global $post;
if(
(
$post->post_type == \'[custom_post_type_name]\'
||
is_post_type_archive( \'[custom_post_type_name]\' )
||
is_tax( \'[custom_taxonomy_name]\' )
)
&&
!is_user_logged_in()
) {
wp_redirect( get_home_url() );
exit;
}
return $content;
}
基本上,这会运行三个早期检查:
$post对象的post类型是否与您要隐藏的内容匹配此URL是您试图隐藏的帖子类型的帖子类型存档吗此URL是您试图隐藏的分类法的分类法/术语页吗如果其中任何一项匹配,并且用户未登录,则用户将被重定向到网站主页。