将帖子与个人用户关联-对其他成员隐藏

时间:2013-11-02 作者:byronyasgur

WordPress是否有任何功能可以帮助我创建一个系统,使数据(如自定义帖子)与特定用户关联,并且(默认情况下)对任何其他用户都不可见。我环顾四周,没有看到任何真正像这样的东西,所以我开始怀疑它不属于WordPress的领域,但我想我应该在这里问一下,以确保我没有遗漏任何明显的东西。我还没有完全检查会员插件的所有功能,因为我相信它们的重点是允许所有(或分层)内容登录会员。。。所以我可能错了。

我需要的是一种类似于成员身份的场景,成员只能看到自己的内容,而不能看到其他任何人的内容。WordPress是否可以这样做,最好是使用核心功能,或者更好的是使用插件。我认为用户表不是为这种类型的活动设计的。

我发现this 我知道这是一篇很古老的文章,但从这篇文章中,我得出了添加推特用户名之类的内容是我们所能做的。

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

这项工作的基础其实很简单。本质上,你只需要钩住pre_get_posts 并设置author query var为您要限制结果的每种查询类型的当前登录用户的值。

function logged_in_user_posts( $query ){
    if ( is_user_logged_in() ){
        global $current_user;
        get_currentuserinfo();
        $query->set( \'author\', $current_user->ID );
    } else {
        // force query to return nothing if user not logged in
        // you may want to handle this more elegantly
        $query->set( \'author\', -1 );
    }
}
add_action( \'pre_get_posts\', \'logged_in_user_posts\' );
现在,您可能需要使用一些conditional tags 此处限制此操作所针对的查询类型。例如,这将导致页面按原样变为404,因此您可能希望确保查询不是针对页面:

if( ! $query->is_page() )
EDIT- 在重读了你的问题后,我想我可能误解了你的意图。。。

结束

相关推荐

Membership Plugin

我正在为高级博客内容寻找一个好的插件。我的客户希望提供30次免费试用以及每月/6个月/每年付费的计划。它应该为每个人显示一个除此之外的帖子,即使他们作为客人在网站上,没有任何会员资格、试用或特价。它还需要通过贝宝接收付款,并在付款后自动打开订阅。我想能够自定义注册页面,以添加地址和电话号码等其他字段。