我正在创建一个自定义的post类型,它只供登录用户查看,我创建了一个{postType}。php覆盖默认呈现,并在顶部包含了一个logincheck,它在登录后重定向到登录页面并返回。
我还没有为我的帖子类型启用存档,所以我想我不必另外覆盖自定义存档页面。
而且,这似乎能按预期工作,而且无需任何插件或其他东西即可轻松维护。
但这是否足以确保未经授权的用户看不到这些帖子?自定义帖子类型有哪些可能的视图模式/url路径?
好了,我必须让帖子public\\u queryable=TRUE,因为我希望它在前端可见,尽管只有登录用户才能看到。我不确定我是否可以对自定义post类型的设置或可能在single{postType}中使用的特定查询进行一些欺骗。php获取非公开的可查询帖子?
最合适的回答,由SO网友:Tareq 整理而成
一个简单的过滤器就可以轻松完成这项工作。让我们尝试此代码
function tp_stop_guestes( $content ) {
global $post;
if ( $post->post_type == \'YOUR_CUSTOM_POSTTYPE\' ) {
if ( !is_user_logged_in() ) {
$content = \'Please login to view this post\';
}
}
return $content;
}
add_filter( \'the_content\', \'tp_stop_guestes\' );
我们正在对帖子内容应用过滤器。如果帖子类型是您的自定义帖子类型,并且用户未登录,则他/她将看到“请登录以查看此帖子”,而不是原始内容。