【问题标题】:How do I create custom taxonomy as a custom post type?如何将自定义分类法创建为自定义帖子类型?
【发布时间】:2019-10-06 15:21:48
【问题描述】:

我想为帖子类型“课程”创建一个类别“大学”。但是,我还希望不仅将大学保留为一个类别,还希望创建自定义帖子类型以显示详细的大学信息。

我已经成功创建了“大学”帖子类型和“课程”帖子类型以及类别。

<?php

    function my_plugin() {

        // Courses Post type with University as a category
        register_post_type( 'Courses', array(
            'public' => true,
            'taxonomies'  => array( 'category' ),
        ));

        // University Post type
        register_post_type( 'university', array(
            'public' => true,
            'taxonomies'  => array( 'category' ),
        ));
    }

    add_action( 'init', 'my_plugin' );

?>

不知何故,我无法将自定义帖子类型“大学”与“课程”联系起来,使其显示为课程类别以及 CPT 本身。

【问题讨论】:

    标签: php wordpress custom-post-type


    【解决方案1】:

    这在 WordPress 中是不可能的。一个对象只能是帖子类型或分类,不能同时是两者。

    一种解决方案是创建帖子类型和分类,然后创建您自己的数据库表来保存两者之间的关系。一个更简单的解决方案(但取决于您需要获取关系的方式)是使用高级自定义字段,并使用它将它们链接在一起。

    【讨论】:

    • 感谢您的解决方案。但是,我无法弄清楚如何按关系字段值过滤帖子。代码 get_field("relationship")[0]->post_title 返回相关的帖子标题,但在 'meta_query' 键中使用时无法过滤帖子。
    • 查看关系字段的 ACF 文档。他们为基本循环以及使用 WP_Query 提供了解决方案:advancedcustomfields.com/resources/relationship
    • 我浏览了该文档,但找不到任何可以帮助我按相关帖子标题或自定义字段过滤帖子的内容。如果你有参考资料,能给我看看吗?
    • 为什么要按标题过滤?你说你想把这两种帖子类型联系起来。如果您在类型 A 的查询中使用 get_field('relationship_field_name'),您将获得类型 B 中您选择为相关的所有帖子。如果您想在 WP_Query 中使用它,可以使用他们使用 post__in 选项的示例。
    【解决方案2】:

    正如 Sjors 所说,您可以在两个 CTP 之间建立连接/关系。

    ADC 插件允许这样做。

    https://www.advancedcustomfields.com/resources/relationship/

    【讨论】:

      猜你喜欢
      • 2020-06-06
      • 1970-01-01
      • 2020-02-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-06
      • 2020-01-19
      • 1970-01-01
      相关资源
      最近更新 更多