覆盖私人状态-使用户能够阅读私人帖子

时间:2013-07-31 作者:Jens Törnell

Hidden private posts for not logged in users

默认情况下,私人帖子仅在登录时可见。

Override, show private posts for everyone

有没有一种聪明的方法来克服这个问题?让每个人都能看到它?

404 page

我知道在查询中使用它,但最大的问题是显示的404页面。它应该使用single而不是404模板。php模板。

3 个回复
SO网友:flomei

正如评论中已经提到的,私人帖子是私人的,这是有充分理由的。

如果您想改变这种行为,可能需要改变get_posts() 用于检索您的帖子。

我没有尝试,但这可能会奏效:

$args = array(
    \'post_status\' => array(
                         \'publish\',
                         \'private\'
                     )
);
$myposts = get_posts($args);

SO网友:Zahid Habib

您可以向任何这样的用户角色添加读取私人帖子的功能。

将以下代码添加到函数中。wordpress主题文件夹中的php:

$subRole = get_role( \'author\' );
$subRole->add_cap( \'read_private_pages\' );
在这里,您将看到详细信息教程http://www.shartd.com/let-subscriber-see-private-post-wordpress/

SO网友:bellasys

我被这些答案弄糊涂了。

当我有“私人”帖子/页面时,我登录时无法看到它们。我只有当我是管理员时才能看到它们。

关于OP的问题--

我使用WPDB类方法有选择地从数据库中提取post\\U内容,以绕过权限:

global $wpdb; //global wpdb class may not work everywhere...
$post_id = (int) $post_id; // you supply $post_id && make sure int...
$result = $wpdb->get_var("SELECT post_content FROM wp_posts WHERE ID = $post_id");
if(!empty($result)) $result = apply_filters(\'the_content\',$result); //will also execute shortcodes in the content
//do stuff like echo $result

结束

相关推荐

Updates for a private plugin?

如果我写一个私有插件,有没有办法使用WordPress自动更新机制来更新它 我想封装这个功能,但它是我自己的5个博客特有的,所以它不是公共插件资源的好候选。但我喜欢这种简单的更新机制 有没有办法做到这一点