获取自定义帖子类型类别中的帖子

时间:2013-05-07 作者:Kien Pham

我在获取自定义帖子类型类别中的帖子时遇到问题。我有下面的代码,但它工作不好。它仍然会收到其他类别的帖子。

<?php
    $query= null;
    $paged = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1;
    $args=array(
        \'post_type\' => get_post_type(),
        \'post_status\' => \'publish\',
        \'paged\' => $paged,
        \'post_type_cat\' => \'featured\', // get_post_type() will return post_type, I add _cat -> post_type_cat
        //\'orderby\' => \'rand\',
        \'posts_per_page\' => 1,
        \'meta_query\' => array(
            array(
                \'key\' => \'_expiration_date\',
                \'value\' => array(0, current_time(\'timestamp\')),
                \'compare\' => \'BETWEEN\'
                )),
            );
    $query = new WP_Query($args);
?>
<?php if ( $query->have_posts() ) : $query->the_post(); ?>
<?php get_template_part( \'template/featured\' ); ?>
<?php else : ?>
<?php get_template_part( \'template/nofeatured\' ); ?>
<?php endif; ?>
<?php wp_reset_query(); ?>
你能帮帮我吗?

非常感谢。

2 个回复
最合适的回答,由SO网友:Adam 整理而成

据我所知,没有这样的参数post_type_cat, 您想使用cat 或者,如果在自定义分类法中查询帖子,您将使用分类法查询。

类别查询示例;

$query = new WP_Query( \'cat=2,6,17,38\' );

$query = new WP_Query( \'category_name=staff\' );
有关按类别查询的更多方法,请参阅以下Codex条目;

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

分类查询示例;

$args = array(
    \'post_type\' => \'post\',
    \'tax_query\' => array(
        array(
            \'taxonomy\' => \'people\',
            \'field\' => \'slug\', //can be set to ID
            \'terms\' => \'bob\' //if field is ID you can reference by cat/term number
        )
    )
);
$query = new WP_Query( $args );
有关详细信息,请参阅此条目:

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

SO网友:djack109

我一生都无法让上述任何一项发挥作用。他们要么什么都带回来,要么什么都没带回来。因此,经过一点尝试和错误,我做到了:-

id 是我想要的那种鼻涕虫。

if (isset($_GET["id"])) {

    $id = $_GET["id"];

    echo $id;

    $id = get_category_by_slug( $_GET["id"] );

    if (isset($id)) {
        $id = $id->term_id;

        $args = array(
            \'post_status\' => \'publish\',
            \'post_type\' => \'Products\',
            \'cat\' => $id,
        );
    }
}

$query = new WP_Query($args);
我是WordPress的新手,几乎已经编写了所有其他语言的程序,我不知道这是一种好方法还是一种坏方法,我只知道它能满足我的需要:)

结束

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post