为什么WP_QUERY不能与CATEGORY_NAME一起使用?

时间:2012-09-07 作者:Steven

这段代码究竟为什么不起作用?

    $my_query = new WP_Query(\'category_name=feature\');
    while ($my_query->have_posts()) : $my_query->the_post();
        echo \'test\';
    endwhile;
我试过了Featurefeature, 没有区别。我需要按类别名称获取帖子。

感谢您的帮助。

update

这也不起作用:$my_query = new WP_Query(\'cat=3\');

code

// index.php

<?php
    include_once(\'header.php\');
?>

<div id="fp-slider-container" class="blue-gradient">
    <div class="main-content-container">
        <?php
        query_posts( \'cat=3&posts_per_page=5\' );

        while ( have_posts() ) : the_post();
            echo \'test\';
        endwhile;


        ?>
    </div>
</div>

<?php
    include_once(\'footer.php\');
?>

3 个回复
SO网友:Hexodus

一个常见的陷阱是:

category\\u名称采用category SLUG 不是name 作为属性

这通常是错误的。

SO网友:helgatheviking

而不是黑客索引。php为什么不使用pre\\u get\\u posts过滤器?

add_filter(\'pre_get_posts\', \'filter_homepage_posts\');
function filter_homepage_posts($query) {
    $limit_number_of_posts = 5;
    $featured_category_id = get_cat_id(\'Reviews\'); // by cat name...
    if ($query->is_home) {
        $query->set(\'cat\', $featured_category_id);
        $query->set(\'showposts\', $limit_number_of_posts);
    }
  return $query;
}
复制自:http://www.seanbehan.com/intercepting-the-wordpress-loop

应该也是这样,因为从技术上讲,查询是通过引用传递的

add_action(\'pre_get_posts\', \'filter_homepage_posts\');
function filter_homepage_posts( $query) {
    $limit_number_of_posts = 5;
    $featured_category = \'bacon-category\'; // by cat slug...
    if ($query->is_home) {
        $query->set(\'category_name\', $featured_category);
        $query->set(\'showposts\', $limit_number_of_posts);
    }
  return $query;
}

SO网友:Pikamander2

正如赫克索德所提到的,category_name 实际上需要一个类别slug。

如果确定使用实际类别名称作为输入,则可以执行以下操作:

$args[\'category_id\'] = get_cat_ID(\'Category Name\');
或者这个:

$args[\'category_name\'] = (get_category(get_cat_ID(\'Category Name\'))) -> slug;
<小时>

Documentation:

获取\\u cat\\u ID:Codex, Developer Resources

get\\u类别:Codex, Developer Resources

WP\\U查询:Codex, Developer Resources

get\\u帖子:Codex, Developer Resources

结束

相关推荐

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

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