【问题标题】:Wordpress - Show only posts with specific slugWordpress - 仅显示具有特定 slug 的帖子
【发布时间】:2014-04-24 12:53:30
【问题描述】:

我敢肯定这将是一个愚蠢的问题......但它就是这样。

我目前有一个页面只显示自定义帖子类型(汽车)的帖子。 我通过运行查询来做到这一点

$args = array(
    'post_type' => 'car');
$query = new WP_Query( $args );

On to the loop...

对于这个自定义帖子类型,我有一个自定义分类法,例如斯巴鲁、本田等... 我只是想解决一些其他问题,但如果我只想显示属于斯巴鲁的帖子,我该如何查询呢?

我想我想查询'slug'(斯巴鲁),这段代码不起作用,但你可以看到我要去的路线......

$args = array(
    'name' => 'subaru',
    'post_type' => 'car');
$query = new WP_Query( $args );

On to the loop...

我知道name 不对。添加到我的$args 数组的正确术语是什么?

非常感谢

【问题讨论】:

    标签: php wordpress custom-post-type


    【解决方案1】:

    取决于您的分类法。在我的示例中,它称为“品牌”:

    $args = array(
        'post_type' => 'car',
        'brand' => 'subaru'
        );
    $query = new WP_Query( $args );
    

    http://codex.wordpress.org/Class_Reference/WP_Query#Taxonomy_Parameters

    【讨论】:

    • 谢谢!它叫“car_manufacturers”,这就是为什么我很难寻找答案!
    • @Steviehype 很高兴我能帮上忙
    【解决方案2】:

    您要做的是分类查询。我可以告诉你怎么做,但我认为首先指出一个更大的错误很重要。你不应该在页面上查询这个。

    这就是档案的用途。

    创建一个名为archive-car.php 的模板文件并在那里输出。这消除了运行自定义 WP 查询的需要。

    然后创建另一个文件taxonomy-{your-custom-taxonomy-name}.php

    在那里也输出汽车,您的问题得到解决,而无需添加任何低效的查询。

    【讨论】:

    • 感谢您的信息。我实际上正在使用基于分类法的 ajax 过滤来处理像投资组合页面这样的网格。所以我只是想测试这个查询是否有效。可以这么说,我实际上并没有在页面上使用它。
    【解决方案3】:

    我认为你需要使用get_terms()

     $terms = get_terms("Subaru");
     if ( !empty( $terms ) && !is_wp_error( $terms ) ){
         echo "<ul>";
         foreach ( $terms as $term ) {
           echo "<li>" . $term->name . "</li>";
    
         }
         echo "</ul>";
     }
    

    看到这个http://codex.wordpress.org/Function_Reference/get_terms

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-03
      • 2013-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多