自定义帖子类型显示

时间:2016-03-16 09:42:50

标签: php wordpress custom-post-type

我在一个自定义帖子类型的网站上工作,在儿童主题的functions.php文件中有所描述。

我创建了一个函数,仍然在函数文件中,它描述了这个自定义内容的页面的行为:基本上,为了实现这一点,我在一个名为的函数中使用get_the_terms()get_post_meta() add_thecontent()。它使用过滤器调用:add_filter('the_content','add_thecontent');

它工作正常:我可以检索名称,自定义分类,几个字段等。

我还在另一个网站上工作,仍然使用不同主题的自定义帖子类型(另一个)。我使用与上述相同的机制(子主题+函数文件+在过滤器中调用的内容)但是当我想显示我的自定义帖子的预览时,引擎调用主题的文件content-single.php。此文件会调用the_category(),这会在我的页面中出现警告,因为我没有#34;常规"我的自定义帖子的类别,只有自定义分类。

我试图在我的孩子主题中添加一个content-single.php以重新定义它的行为,但我得到了错误。而且我认为这不是一个正确的方法。

我想要的是强制WP引擎显示我在functions.php中定义的自定义帖子。我怎样才能做到这一点?谢谢,抱歉我的英文

2 个答案:

答案 0 :(得分:0)

我建议您使用Which Template Plugin进行安装和调试,一旦安装完毕,就可以知道调用哪个文件来解析自定义帖子。

另外,请查看worpdress层次结构页面here

如果您创建了自定义帖子,则可以将该自定义帖子的单个页面创建为single- $ posttype.php,您就可以控制该文件的流程。

祝你好运!

答案 1 :(得分:0)

解决。在父主题中,content-single.php包含以下代码:

<span class="cat-name"><?php $category = get_the_category(); echo $category[0]->cat_name; ?></span>

所以我在我的孩子主题中创建了一个content-single.php,我对帖子的类型进行了测试。如果帖子不是我创建的自定义帖子,则通常显示其类别。否则,什么都不做,因为我自己处理分类法。

<?php if($post->post_type != 'myCustomPost') {;?>
            <span class="cat-name"><?php $category = get_the_category(); echo $category[0]->cat_name; ?></span>
        <?php } ?>