得到了一个问题。谷歌没帮我:) 默认情况下,当您将可见性页面设置为私有时,它会为我的页面显示404找不到的模板。
我需要自定义WP私有模板才能设置我的特定内容。
我不想创建自定义模板页面并设置类似
的内容if (is_user_logged_in ()) {// f.e. Login/Signup with Facebook}
else { // show content}
当我将页面设置为私有时,只需编辑默认的Wordpress模板。 有人帮我这么好吗? :)
答案 0 :(得分:0)
我建议您在帖子类型中添加一些元框并通过在the_content
上应用过滤器来显示私人和公共内容的最佳方式
但是你仍然在寻找一些核心黑客然后考虑这个例子
function alter_private_query($posts, $query) {
if (!is_user_logged_in() && !empty($query->is_singular) && isset($posts[0]->post_status) && $posts[0]->post_status == 'private') {
$posts = get_posts(array(
'name' => 'some-public-post-slug',
'post_type' => 'post',
'post_status' => 'publish',
'numberposts' => 1
));
}
return $posts;
}
add_filter('posts_results', 'alter_private_query', 1, 2);
如果用户未登录,WordPress会清空$query->posts
时没有过滤器。
仍然高于你的过滤器posts_results
。使用此功能,您可以通过公开发布替换posts
变量。
只是回答你的条件问题,我根本不推荐它。毕竟WordPress为我们提供了添加许多元框的能力。您甚至可以在不触及模板的情况下为每个用户显示不同的内容。
注意:这可能会产生搜索引擎优化问题,因为您将有两个相同的内容 发布两个不同的URL。机器人无法登录您的 站点。