0

我问了几个问题试图解决这个简单的问题,但似乎没有任何效果。

拥有私人/公共帖子的推荐方式是什么?我希望有一个网站,如果作者/编辑/管理员登录每个私人帖子并且公共帖子是可查看/可搜索的。如果用户未登录,则仅公开帖子可见。

我已经考虑/尝试过多种方式。一种简单的方法是我使用 WP_Query 在登录/注销时包含/排除所有带有自定义字段“私人”的帖子。

虽然这很好用,但我有两个问题,它有多安全?当 Wordpress 已经具有私人帖子功能时,它需要一个自定义字段。

我尝试过的另一种方法是使用 Wordpress 内置的私人帖子功能,但我无法让私人帖子显示在前端。它们显示在允许用户的编辑屏幕和管理员的循环(前端)中,但不显示编辑或作者......

使用 wordpress 内置函数是我的首选方法,但无法让它正常工作。

有什么建议或帮助吗?一定有人在不需要自定义字段的情况下做到了这一点?

谢谢

4

2 回答 2

0

我相信最适合您的情况是使用WordPress 功能。如果登录,编辑已经能够在前端查看私人帖子/页面(因为他们有read_private_posts能力)。

这是一个示例,说明如何使author用户角色可以查看私人帖子/页面。

function so0805_init_theme_add_capabilities(){
    /* allow authors to view private posts and pages */
    $role_author = get_role('author');
    $role_author->add_cap('read_private_pages');
    $role_author->add_cap('read_private_posts');

}
add_action('init', 'so0805_init_theme_add_capabilities');

将此代码粘贴到functions.php您的主题中。

于 2013-05-09T00:30:13.443 回答
0

您不需要使用元字段来获取私人帖子,它在 wp 查询 post_status 参数中可用。

$args = array( 'post_status' => array( 'publish' ) ); // regular users
if ( is_user_logged_in() ) {
  // signed in users
  $args['post_status'][] = 'private';
}

$query = new WP_Query( $args);
于 2013-05-09T00:18:19.397 回答