自定义帖子类型不会出现在主页中

时间:2020-01-20 作者:reti

我希望在我的博客上有不同类型的帖子,例如:文章、电影描述、书籍描述、简短描述链接、引文、历史事件、人物、艺术品、音乐作品、术语等。它们应按层次目录和层次标签分组。理论上,此插件为我提供了这样做的可能性:https://wordpress.org/plugins/custom-post-type-ui/. 只有一个问题-自定义帖子类型不会显示在主页上:https://wordpress.org/support/topic/custom-post-type-dont-appear-in-the-main-colllection/. 我正在学习php,但要获得正确的知识还需要很多时间。我可以雇一个程序员,但首先我想做一个好的研究。我认为还有一种更简单的方法。有人知道吗?

2 个回复
最合适的回答,由SO网友:Vitauts Stočka 整理而成

发现functions.php 在主题中添加以下代码:

function add_custom_pt( $query ) {
  if ( !is_admin() && $query->is_main_query() ) {
    $query->set( \'post_type\', array( \'post\', \'cptslug1\', \'cptslug2\' ) );
  }
}
add_action( \'pre_get_posts\', \'add_custom_pt\' );
更改数组值以匹配post类型的slug(根据需要添加任意多个),但保留“post”。

SO网友:Waldo Rabie

使用pre_get_posts 钩子以修改$query 并在搜索中包含自定义帖子类型。

将以下内容添加到主题functions.php 文件

function modify_query( $query ) {
    if ( is_home() ) {
        $query->set( \'post_type\', array( \'post\', \'articles\', \'film_descriptions\', \'book_descriptions\', \'characters\' );
    }
}

add_action( \'pre_get_posts\', \'modify_query\', 10, 1 );

相关推荐

Testing Plugins for Multisite

我最近发布了一个WordPress插件,它在单个站点上非常有效。我被告知该插件在多站点安装上不能正常工作,我理解其中的一些原因。我已经更新了代码,现在需要一种方法来测试更新后的代码,然后才能转到实时客户的多站点安装。我有一个用于测试的WordPress安装程序的单站点安装,但需要在多站点安装上进行测试。根据我所能找到的唯一方法是在网络上至少有两个站点来安装整个多站点安装,以测试我的插件。设置WordPress的整个多站点安装是插件开发人员的唯一/首选方式,还是有更快的测试环境可用。