WP_Query by Category Name

时间:2014-09-11 作者:James Geiger

您好,我正在使用一些代码在页面的滑块中显示帖子,在顶部我有一些代码可以使用WP\\u查询对其进行过滤。就是这样,不确定出了什么问题:

<?php
/**
 * Featured Content 2
 *
 */

$args = array(
    \'post_type\' => \'iv_post_type\',
    \'category\'    => \'commitment\',
);
$loop = new WP_Query( $args );      
if ( $loop->have_posts() ) : ?>

    <div id="video-sidebar-right">

        <div class="featured-current-wrapper">

            <div id="featured-content">     

                <?php while ( $loop->have_posts() ) : $loop->the_post(); ?>

                        <div class="featured-post">
                            <?php if(has_post_thumbnail()) :?>
                                <a href="<?php the_permalink(); ?>"><?php the_post_thumbnail( \'bcc-video-medium\' ); ?></a>
                                <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
                                <?php the_excerpt(); ?> 
                            <?php else :?>

                            <?php endif;?>

                        </div> <!-- .featured-post -->

                        <div class="featured-post-pager">
                            <span id="slider-prev" class="slider-nav">&larr; Next Photo</span>
                            <span id="slider-next" class="slider-nav">&rarr; Previous Photo</span>
                        </div>

                <?php endwhile; ?>


            </div><!-- #featured-content -->
        </div><!-- .featured-current-wrapper -->
    </div><!-- #video-sidebar-right -->

    <div id="video-featured-content">

        <div class="featured-video">
            <div class="videoWrapper">
                <iframe width="640" height="360" src="//www.youtube.com/embed/so_PO0dP3oA" frameborder="0" allowfullscreen></iframe>
            </div>
        </div>

        <?php wp_nav_menu( array( \'theme_location\' => \'bcc-video-menu\' ) ); ?>

        <p class="video-choose-cat">Choose a category from above to view our different articles.</p>

        <div id="slider-nav">

            <div id="slide-thumbs">

                <?php $slidecount = 1;

                while ( $loop->have_posts() ) : $loop->the_post(); ?>

                    <div class="slide-thumbs-single <?php echo ( $slidecount == -1 ) ? \'last\' : \'\'; ?>">
                        <?php if(has_post_thumbnail()) :?>
                            <?php the_post_thumbnail( \'bcc-video-thumb\' ); ?>
                        <?php else :?>

                        <?php endif;?>
                    </div>

                    <?php $slidecount++; ?>

                <?php endwhile; ?>

            </div><!-- .slide-thumbs -->
        </div><!-- #slider-nav -->
    </div><!-- #video-featured-content -->


<?php endif; ?>

2 个回复
SO网友:Pieter Goosen

category 是的有效参数get_posts, 不适合WP_Query. 以下是的有效类别参数WP_Query

  • cat (int) - 使用类别id。
  • category_name (string)- 使用类别slug (NOT name).
  • category__and (array) - 使用类别id。
  • category__in (array) - 使用类别id。
  • category__not_in (array) - 使用类别id。
您可以使用catcategory_name

如果您不确定任何参数,只需执行var_dump() 您的new WP_Query 变量在您的情况下,请执行以下操作

?><pre><?php var_dump($loop); ?></pre><?php
这将呈现如下内容

object(WP_Query)#197 (49) {
  ["query"]=>
  array(2) {
    ["page"]=>
    string(0) ""
    ["pagename"]=>
    string(7) "profile"
  }
  ["query_vars"]=>
  array(62) {
    ["page"]=>
    int(0)
    ["pagename"]=>
    string(7) "profile"
    ["error"]=>
    string(0) ""
    ["m"]=>
    string(0) ""
    ["p"]=>
    int(0)
    ["post_parent"]=>
    string(0) ""
    ["subpost"]=>
    string(0) ""
    ["subpost_id"]=>
    string(0) ""
    ["attachment"]=>
    string(0) ""
    ["attachment_id"]=>
    int(0)
    ["name"]=>
    string(7) "profile"
    ["static"]=>
    string(0) ""
    ["page_id"]=>
    int(0)
    ["second"]=>
    string(0) ""
    ["minute"]=>
    string(0) ""
    ["hour"]=>
    string(0) ""
    ["day"]=>
    int(0)
    ["monthnum"]=>
    int(0)
    ["year"]=>
    int(0)
    ["w"]=>
    int(0)
    ["category_name"]=>
    string(0) ""
    ["tag"]=>
    string(0) ""
    ["cat"]=>
    string(0) ""
    ["tag_id"]=>
    string(0) ""
    ["author"]=>
    string(0) ""
    ["author_name"]=>
    string(0) ""
    ["feed"]=>
    string(0) ""
    ["tb"]=>
    string(0) ""
    ["paged"]=>
    int(0)
    ["comments_popup"]=>
    string(0) ""
    ["meta_key"]=>
    string(0) ""
    ["meta_value"]=>
    string(0) ""
    ["preview"]=>
    string(0) ""
    ["s"]=>
    string(0) ""
    ["sentence"]=>
    string(0) ""
    ["fields"]=>
    string(0) ""
    ["menu_order"]=>
    string(0) ""
    ["category__in"]=>
    array(0) {
    }
    ["category__not_in"]=>
    array(0) {
    }
    ["category__and"]=>
    array(0) {
    }
    ["post__in"]=>
    array(0) {
    }
    ["post__not_in"]=>
    array(0) {
    }
    ["tag__in"]=>
    array(0) {
    }
    ["tag__not_in"]=>
    array(0) {
    }
    ["tag__and"]=>
    array(0) {
    }
    ["tag_slug__in"]=>
    array(0) {
    }
    ["tag_slug__and"]=>
    array(0) {
    }
    ["post_parent__in"]=>
    array(0) {
    }
    ["post_parent__not_in"]=>
    array(0) {
    }
    ["author__in"]=>
    array(0) {
    }
    ["author__not_in"]=>
    array(0) {
    }
    ["ignore_sticky_posts"]=>
    bool(false)
    ["suppress_filters"]=>
    bool(false)
    ["cache_results"]=>
    bool(true)
    ["update_post_term_cache"]=>
    bool(true)
    ["update_post_meta_cache"]=>
    bool(true)
    ["post_type"]=>
    string(0) ""
    ["posts_per_page"]=>
    int(6)
    ["nopaging"]=>
    bool(false)
    ["comments_per_page"]=>
    string(2) "20"
    ["no_found_rows"]=>
    bool(false)
    ["order"]=>
    string(4) "DESC"
  }
  ["tax_query"]=>
  NULL
  ["meta_query"]=>
  object(WP_Meta_Query)#211 (2) {
    ["queries"]=>
    array(0) {
    }
    ["relation"]=>
    NULL
  }
  ["date_query"]=>
  bool(false)
  ["queried_object"]=>
  object(WP_Post)#236 (24) {
    ["ID"]=>
    int(265)
    ["post_author"]=>
    string(1) "1"
    ["post_date"]=>
    string(19) "2014-04-21 14:48:59"
    ["post_date_gmt"]=>
    string(19) "2014-04-21 12:48:59"
    ["post_content"]=>
    string(0) ""
    ["post_title"]=>
    string(4) "Test"
    ["post_excerpt"]=>
    string(0) ""
    ["post_status"]=>
    string(7) "publish"
    ["comment_status"]=>
    string(4) "open"
    ["ping_status"]=>
    string(4) "open"
    ["post_password"]=>
    string(0) ""
    ["post_name"]=>
    string(7) "profile"
    ["to_ping"]=>
    string(0) ""
    ["pinged"]=>
    string(0) ""
    ["post_modified"]=>
    string(19) "2014-09-10 19:54:58"
    ["post_modified_gmt"]=>
    string(19) "2014-09-10 17:54:58"
    ["post_content_filtered"]=>
    string(0) ""
    ["post_parent"]=>
    int(0)
    ["guid"]=>
    string(39) "http://localhost/wordpress/?page_id=265"
    ["menu_order"]=>
    int(0)
    ["post_type"]=>
    string(4) "page"
    ["post_mime_type"]=>
    string(0) ""
    ["comment_count"]=>
    string(1) "0"
    ["filter"]=>
    string(3) "raw"
  }
  ["queried_object_id"]=>
  int(265)
  ["request"]=>
  string(138) "SELECT   wp_posts.* FROM wp_posts  WHERE 1=1  AND (wp_posts.ID = \'265\') AND wp_posts.post_type = \'page\'  ORDER BY wp_posts.post_date DESC "
  ["posts"]=>
  &array(1) {
    [0]=>
    object(WP_Post)#212 (24) {
      ["ID"]=>
      int(265)
      ["post_author"]=>
      string(1) "1"
      ["post_date"]=>
      string(19) "2014-04-21 14:48:59"
      ["post_date_gmt"]=>
      string(19) "2014-04-21 12:48:59"
      ["post_content"]=>
      string(0) ""
      ["post_title"]=>
      string(4) "Test"
      ["post_excerpt"]=>
      string(0) ""
      ["post_status"]=>
      string(7) "publish"
      ["comment_status"]=>
      string(4) "open"
      ["ping_status"]=>
      string(4) "open"
      ["post_password"]=>
      string(0) ""
      ["post_name"]=>
      string(7) "profile"
      ["to_ping"]=>
      string(0) ""
      ["pinged"]=>
      string(0) ""
      ["post_modified"]=>
      string(19) "2014-09-10 19:54:58"
      ["post_modified_gmt"]=>
      string(19) "2014-09-10 17:54:58"
      ["post_content_filtered"]=>
      string(0) ""
      ["post_parent"]=>
      int(0)
      ["guid"]=>
      string(39) "http://localhost/wordpress/?page_id=265"
      ["menu_order"]=>
      int(0)
      ["post_type"]=>
      string(4) "page"
      ["post_mime_type"]=>
      string(0) ""
      ["comment_count"]=>
      string(1) "0"
      ["filter"]=>
      string(3) "raw"
    }
  }
  ["post_count"]=>
  int(1)
  ["current_post"]=>
  int(-1)
  ["in_the_loop"]=>
  bool(false)
  ["post"]=>
  object(WP_Post)#212 (24) {
    ["ID"]=>
    int(265)
    ["post_author"]=>
    string(1) "1"
    ["post_date"]=>
    string(19) "2014-04-21 14:48:59"
    ["post_date_gmt"]=>
    string(19) "2014-04-21 12:48:59"
    ["post_content"]=>
    string(0) ""
    ["post_title"]=>
    string(4) "Test"
    ["post_excerpt"]=>
    string(0) ""
    ["post_status"]=>
    string(7) "publish"
    ["comment_status"]=>
    string(4) "open"
    ["ping_status"]=>
    string(4) "open"
    ["post_password"]=>
    string(0) ""
    ["post_name"]=>
    string(7) "profile"
    ["to_ping"]=>
    string(0) ""
    ["pinged"]=>
    string(0) ""
    ["post_modified"]=>
    string(19) "2014-09-10 19:54:58"
    ["post_modified_gmt"]=>
    string(19) "2014-09-10 17:54:58"
    ["post_content_filtered"]=>
    string(0) ""
    ["post_parent"]=>
    int(0)
    ["guid"]=>
    string(39) "http://localhost/wordpress/?page_id=265"
    ["menu_order"]=>
    int(0)
    ["post_type"]=>
    string(4) "page"
    ["post_mime_type"]=>
    string(0) ""
    ["comment_count"]=>
    string(1) "0"
    ["filter"]=>
    string(3) "raw"
  }
  ["comment_count"]=>
  int(0)
  ["current_comment"]=>
  int(-1)
  ["found_posts"]=>
  int(1)
  ["max_num_pages"]=>
  int(0)
  ["max_num_comment_pages"]=>
  int(0)
  ["is_single"]=>
  bool(false)
  ["is_preview"]=>
  bool(false)
  ["is_page"]=>
  bool(true)
  ["is_archive"]=>
  bool(false)
  ["is_date"]=>
  bool(false)
  ["is_year"]=>
  bool(false)
  ["is_month"]=>
  bool(false)
  ["is_day"]=>
  bool(false)
  ["is_time"]=>
  bool(false)
  ["is_author"]=>
  bool(false)
  ["is_category"]=>
  bool(false)
  ["is_tag"]=>
  bool(false)
  ["is_tax"]=>
  bool(false)
  ["is_search"]=>
  bool(false)
  ["is_feed"]=>
  bool(false)
  ["is_comment_feed"]=>
  bool(false)
  ["is_trackback"]=>
  bool(false)
  ["is_home"]=>
  bool(false)
  ["is_404"]=>
  bool(false)
  ["is_comments_popup"]=>
  bool(false)
  ["is_paged"]=>
  bool(false)
  ["is_admin"]=>
  bool(false)
  ["is_attachment"]=>
  bool(false)
  ["is_singular"]=>
  bool(true)
  ["is_robots"]=>
  bool(false)
  ["is_posts_page"]=>
  bool(false)
  ["is_post_type_archive"]=>
  bool(false)
  ["query_vars_hash":"WP_Query":private]=>
  string(32) "7d1c96f43296ed3cb0cd8c4716b9b916"
  ["query_vars_changed":"WP_Query":private]=>
  bool(false)
  ["thumbnails_cached"]=>
  bool(false)
  ["stopwords":"WP_Query":private]=>
  NULL
}

EDIT

另一件需要确保的事情是,您是否使用自定义分类法或内置类别。了解差异是非常重要的,因为自定义分类法不使用类别参数,但是tax-query. 如果您不确定,请阅读我关于此主题的回答here

如果使用自定义分类法,则应删除category 参数和swoptax_query

实例

\'tax_query\' => array(
        array(
            \'taxonomy\' => \'NAME OF YOUR TAXONOMY\',
            \'field\'    => \'slug\',
            \'terms\'    => \'SLUG OF YOUR TERM\',
        ),
    ),

SO网友:farid teymouri

试试这个

$anArray = array(
    \'tax_query\' => array(
        array(
            \'taxonomy\' => \'YOUR CUSTOM TAXONOMY\',
            \'terms\'    => \'CATEGORY ID\',
        ),
    ),
);
您可以在中找到值wp_term_taxonomy 从您的数据库。

结束

相关推荐

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

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