有没有办法强制自定义帖子类型与普通wp帖子一样?
嗨,我需要一些帮助来添加一个自定义的帖子类型到我的主题的帖子部分。帖子页面是使用模板的静态页面(不是标准的wp主页/博客页面)。该模板允许我选择页面上的帖子类别,但我的自定义帖子类型从未显示在选项中。
如果我选择“显示所有帖子”,自定义帖子仍然不会显示在发布的页面上,除非我在函数末尾添加以下代码。php
然后,我的自定义帖子会显示在常规帖子中(如我所愿),但这会打乱网站的布局(主导航菜单消失!)
add_filter( \'pre_get_posts\', \'my_get_posts\' );
function my_get_posts( $query ) {
$query->set( \'post_type\', array( \'post\', \'page\', \'projects\' ) );
return $query;
}
SO网友:Manny Fleurmond
它搞砸的原因是它到处都添加了自定义的post类型。您希望将其限制为主页的主循环。贾斯汀·塔洛克写了一篇关于如何做到这一点的文章here. 您的代码应该是这样的:
add_filter( \'pre_get_posts\', \'my_get_posts\' );
function my_get_posts( $query ) {
if ( is_home() && $query->is_main_query() )
$query->set( \'post_type\', array( \'post\', \'page\', \'projects\' ) );
return $query;
}
这将其限制为主页的主循环。