Why is WP_Query not working with category_name?

Why on earth is this piece of code not working?

    $my_query = new WP_Query('category_name=feature');
    while ($my_query->have_posts()) : $my_query->the_post();
        echo 'test';
    endwhile;

I’ve tried with Feature and feature, no difference.
I need to get post by category name.

Read More

Any help appreciated.

update

This is not working either: $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');
?>

Related posts

Leave a Reply

3 comments

  1. instead of hacking index.php why not use the pre_get_posts filter?

    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;
    }
    

    copied from: http://www.seanbehan.com/intercepting-the-wordpress-loop

    should also work like this since technically the query passes by reference

    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;
    }
    
  2. As Hexodus mentioned, category_name actually requires a category slug.

    If you’re determined to use the actual category name as an input, then you can do something like this:

    $args['category_id'] = get_cat_ID('Category Name');
    

    or this:

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

    Documentation:

    get_cat_ID: Codex, Developer Resources

    get_category: Codex, Developer Resources

    WP_Query: Codex, Developer Resources

    get_posts: Codex, Developer Resources