【问题标题】:How to get posts by custom taxonomy in WordPress?如何在 WordPress 中按自定义分类法获取帖子?
【发布时间】:2014-09-20 04:28:06
【问题描述】:

在 WordPress 中,我尝试使用以下方法从自定义帖子类型“颜色”、自定义分类“颜色名称”中获取帖子:

注意:我有一个自定义帖子类型,颜色,自定义帖子的标题是“珊瑚”、“牡丹”。我还有一个自定义分类,颜色名称。通过保存彩色帖子的挂钩,可以创建自定义分类中的类别。然后,自定义帖子类型颜色,可以用其他相关颜色进行标记。

$slug = str_replace(" ", "_", $page_title);
$slug = strtolower($slug);

//Slug is - 'coral', 'peony', etc.

$args = array( 'post_type' => 'color',
               'posts_per_page' => -1,
               'tax_query' => array( array (
                       'taxonomy' => 'color-name',
                       'field' => 'slug',
                       'terms' => $slug
                                   ) )
);
$myposts = query_posts( $args );

我在谷歌搜索后尝试了很多变体,但没有任何效果 - 我要么得到所有帖子,要么没有帖子。这是我尝试过的另一个版本的 args:(结果没有帖子):

  $args = array('color-name' => $page_title,
                'post_type' => 'color',
                'post_status' => 'publish',
                'posts_per_page' => -1,
                'caller_get_posts'=> 1
               );

我之前曾为此苦苦挣扎并放弃了,只是进行了自定义 sql 调用。有谁确切地知道如何通过 WordPress 功能实现这一点?

【问题讨论】:

  • 您的条款如何。看来这是你的问题。此外,从不使用query_posts,它会破坏主查询,并且在大多数情况下,分页完全失败。此外,caller_get_posts 已长期贬值,已替换为 ignore_sticky_posts
  • 你是说这件作品吗? '条款' => $slug? $slug 是一个字符串,比如 "peony"。
  • 是的,我是这个意思。我相信$slug 是你的问题。你确定$slug 的结果是一个字符串而不是一个数组。请edit您的问题并为$slug添加您的代码。我想看看那个
  • 这就是我想要做的事情,用文字来表达:列出所有在名为 color-name 的自定义分类下标记为“蓝色”的帖子,这些帖子也在自定义帖子类型“颜色”中
  • 好吧,这有点道理。没有的部分,蓝色,是一个帖子标签或颜色名称中的一个术语

标签: php wordpress


【解决方案1】:

我会使用WP_Query 而不是query_posts()。例如:

$args = array(
    'post_type' => 'color',
    'tax_query' => array(
        array(
            'taxonomy' => 'color-name',
            'field' => 'slug',
            'terms' => $slug
        )
    )
);
$query = new WP_Query( $args );

if ( $query->have_posts() ) {
    while ( $query->have_posts() ) {
        $query->the_post();
        // Do something.
    }
} else {
    // No posts found.
}
wp_reset_postdata();

参考:http://codex.wordpress.org/Class_Reference/WP_Query

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-28
    相关资源
    最近更新 更多