如何显示自定义帖子类型?

时间:2016-11-06 作者:saeed Am

我创建了名为book. 我试图在我的主题中制作一个模板,所以当我在我的主题中的任何页面上使用这个模板而不是获取普通的帖子类型时(我是指我的posts) 它获取我的自定义帖子类型book. 我试图在执行之前更改查询,但它不起作用,实际上它在我的页面中不显示任何内容,甚至不显示页眉或页面中的其他常见元素。以下是我的模板中的代码:

<?php /* Template Name: themeplate-book */ ?>
<?php defined( \'ABSPATH\' ) OR die( \'This script cannot be accessed directly.\' );

/**
 * The template for displaying pages
 */


 // Show posts of \'post\', \'page\' and \'movie\' post types on home page
 add_action( \'pre_get_posts\', \'add_my_post_types_to_query\' );

 function add_my_post_types_to_query( $query ) {
   if ( $query->is_main_query() )
     $query->set( \'post_type\', array( \'book\') );

   return $query;
 }
有什么想法吗?

1 个回复
SO网友:jgraup

正在添加pre_get_posts 如果在中订阅,则为时已晚page template 你的模板是空的,所以它没有显示任何内容。

移动您的pre_get_posts 向您的functions.php 所以它有机会跑。同时考虑使用template_include 并指定使用书本模板的另一种方法,您可以在该函数中进行检查。

相关推荐

Updating modified templates

我想调整一些。php模板文件在我的WordPress主题中,我知道正确的过程是将相关文件复制到子主题文件夹中并在那里编辑文件,这样我的修改就不会在将来的主题更新中丢失。但这是否意味着我将无法从主题更新中获益,因为我将文件放在了我的子主题文件夹中?这可能不是一件好事,因为主题更新可能添加了一些有用的特性,甚至修复了我最初需要对代码进行调整的问题!这方面的常见解决方案是什么?有人推荐了一款Diff应用程序——这是人们常用的吗?