Private Posts/Pages & Search

时间:2013-08-18 作者:RoseCoder

我有一个网站,那里有一个私人页面和一个私人帖子。当以管理员身份登录时,我可以查看这两个,它们甚至会出现在搜索中。

然而,当以编辑身份登录时,我仍然可以看到这些帖子,但它们不会出现在搜索中。我觉得这有点奇怪,我想知道是否有人经历过这种情况,或者知道如何在以编辑身份登录时在搜索中显示私人页面和帖子?

1 个回复
最合适的回答,由SO网友:epilektric 整理而成

这是默认的WordPress行为。

http://codex.wordpress.org/Content_Visibility#Private_Content
私人帖子会自动发布,但除了具有相应权限级别(编辑或管理员)的人以外,任何人都看不到。

警告:如果您的站点有多个编辑器或管理员,他们将能够在编辑面板中查看您的受保护帖子和私人帖子。

如果要在站点前端向登录的编辑器显示私人帖子,可以将此代码添加到functions.php.

add_action(\'pre_get_posts\',\'filter_search\');
function filter_Search($query){
    if( is_admin() || ! $query->is_main_query() ) return;
    if ($query->is_search) {
        if( current_user_can(\'edit_private_posts\') ) {
            $query->set(\'post_status\',array(\'private\',\'publish\'));
        }
    }
}

结束

相关推荐

pre_get_posts redirecting

是否有可能将访问者重定向到主页,例如,如果不允许他们查看页面/帖子的内容,请使用pre\\u get\\u posts操作?我正在尝试开发一个简化的会员插件,我想测试当前用户/当前访问者是否可以查看页面/帖子的内容。为此,我想从wp\\U查询中检索查询到的帖子id,并测试用户/访问者是否可以查看他请求的内容。如果他不能,我想把他重定向到错误页面。我还使用类来封装一些数据。下面是一段代码:class Public { public function __construct() {