我的Wordpress网站上有几篇未发表的帖子,我试图使用普通的帖子标签(site.com/post-here
)使普通用户(未登录)可以访问它。我了解这可能不是最佳做法,但出于我的特殊目的,需要这样做。
我尝试将以下代码段添加到我的functions.php
文件中:
function enable_view_drafts() {
$role = get_role( 'subscriber' );
$role->add_cap( 'read_private_posts' );
$role->add_cap( 'edit_posts' );
}
add_action( 'after_setup_theme', 'enable_view_drafts');
我也尝试使用init
钩子代替after_setup_theme
。没运气。
我的理解是对角色的更改已保存到数据库中,因此只需执行一次。这就是为什么我使用after_setup_theme
钩子来调用函数的原因。
但是,当我尝试以普通用户身份访问页面时,系统显示的是404页面,而不是帖子内容。我也尝试加载预览URL(site.com/?p=212&preview=true
),但是也没有用。
这些是我的猜测:
- 普通用户没有足够的时间
caps
来阅读草稿帖子。 - 任何用户(包括管理员)都无法测试和查看前端的草稿。
为了完成我要完成的工作,我必须进行哪些更改?如果不可能,您建议什么替代解决方案?
注意:我不是在寻找基于插件的解决方案。