【问题标题】:Custom post type display自定义帖子类型显示
【发布时间】:2016-03-16 09:42:49
【问题描述】:

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

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

它工作正常:我可以检索名称、自定义分类法、多个字段...等。

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

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

我想要的是强制 WP 引擎显示我在 functions.php 中定义的自定义帖子。我怎样才能做到这一点?谢谢和对不起我的英语

【问题讨论】:

    标签: php wordpress custom-post-type


    【解决方案1】:

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

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

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

    祝你好运!

    【讨论】:

    • 感谢您的帮助!但为什么我能够在第一种情况下正确显示我的自定义帖子?为什么这里也没有调用 content-single.php ?
    • 我知道您有两个不同的 WP 安装,所以我会查看 functions.php 以查看是否正在进行任何自定义内容解析。如果您上传一些代码,我将能够为您提供更多帮助。
    • 谢谢,我会尽量简化代码并贴出来。我试图重命名 content-single.php,它似乎工作。现在我正在尝试使用您提到的插件来查找调用此文件的位置
    • 当我尝试显示自定义帖子页面时,插件“哪个模板”说使用了“single.php”,尽管我页面上的警告来自“content-single.php”。我在我的子主题中创建了一个名为“content-single.php”的文件。如果我是空的,则不会显示任何内容。如果它至少包含 the_content(),它将显示在 functions.php 中定义的内容。但是现在文章和页面无法正常显示了!
    • 记住the_content()需要在the_loop()内部调用:codex.wordpress.org/The_Loop_in_Action
    【解决方案2】:

    解决了。在父主题中,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 } ?>
    

    【讨论】:

      猜你喜欢
      • 2022-07-20
      • 1970-01-01
      • 1970-01-01
      • 2017-03-12
      • 2016-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多