【问题标题】:Wordpress - Query Posts by Custom FieldWordpress - 按自定义字段查询帖子
【发布时间】:2015-10-24 08:26:30
【问题描述】:

我希望通过我在页面上创建的自定义字段来查询我的帖子。但是自定义字段是一个值数组。因此自定义字段“国家/地区”可能如下所示

国家 => 美国、非洲、英国、波兰

让我困惑的是如何使用自定义字段查询帖子,该字段是一个以“,”分隔的数组?

我在这里尝试了很多解决方案,但都没有成功。

任何帮助将不胜感激!

【问题讨论】:

    标签: php wordpress custom-fields


    【解决方案1】:

    您是否将“美国、非洲、英国、波兰”写为一个键的值?

    那将是一个字符串而不是一个数组。

    【讨论】:

    • 是的,但是如果我正在为标签编写自定义查询,它不需要分开吗?
    • 这是您不想为该帖子类型启用标签的原因吗? stackoverflow.com/questions/10245071/…
    • 帖子有标签,但我想做的是在页面上附加一个自定义字段,该页面中有一个用逗号分隔的标签字符串。然后查询该页面上具有这些特定页面标签的帖子。
    • 我知道了。好吧,您可以在该字段上尝试explode()(我建议不要这样做),这会将字符串分解为数组。您将使用逗号作为分隔符。问题是您的数据库查询将检索每个帖子,然后在每次遇到该字段时都explode()。您是否考虑过该帖子的自定义分类法?它与标签非常相似。好处是该功能内置于 wordpress 中。 justintadlock.com/archives/2009/05/06/…
    • 这些比标签更好吗?我目前在每个帖子中都有标签。有没有比在页面上设置自定义字段更好的方法?有没有办法通过模板等来做到这一点?
    【解决方案2】:

    https://codex.wordpress.org/Taxonomies

    function people_init() {
        // create a new taxonomy
        register_taxonomy(
            'countries',
            'post',
            array(
                'label' => __( 'Countries' ),
                'rewrite' => array( 'slug' => 'countries' ),
                'capabilities' => array(
                    'assign_terms' => 'edit_guides',
                    'edit_terms' => 'publish_guides'
                )
            )
        );
    }
    add_action( 'init', 'countries_init' );
    

    【讨论】:

      猜你喜欢
      • 2021-06-29
      • 2012-07-04
      • 2014-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多