首页 文章

如何通过WordPress中的自定义分类法获取帖子?

提问于
浏览
0

在WordPress中,我试图从自定义帖子类型'color',自定义分类'color-name'获取帖子,使用以下内容:

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

$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功能使这个工作?

1 回答

  • 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();
    

    Ref: http://codex.wordpress.org/Class_Reference/WP_Query

相关问题