我已经问过几个试图解决这个简单问题的问题,但似乎没什么用。
推荐私人/公共职位的方式是什么?我希望有一个网站,如果作者/编辑/管理员登录每个私人帖子和公共帖子是可见/可搜索的。如果用户未登录公共帖子,则可以查看。
我已经考虑过/尝试过多种方式。我通过这种方式实现了一种简单的方法,使用WP_Query来包含/排除所有带有自定义字段的帖子" Private"登录/退出时。
虽然这很好但我有两个问题,它有多安全?当Wordpress已经具有私人帖子功能时,它需要一个自定义字段。
我尝试过的另一种方法是使用内置私人帖子功能的Wordpress,但我无法将私人帖子显示在前端。它们出现在编辑屏幕中,显示允许的用户和管理员的循环(前端),但不是编辑或作者....
使用wordpress内置函数是我的perferrred方法,但不能让它正常工作。
任何建议或帮助?有人必须这样做而不需要自定义字段吗?
谢谢
答案 0 :(得分: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);
答案 1 :(得分:0)
我认为最适合您的是WordPress capabilities。如果登录,编辑者已经能够在前端查看私人帖子/页面(因为他们具有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
内。