2013-07-25 104 views
0

如標題所示,當我嘗試查詢帖子以顯示哪些帖子屬於哪個類別時,它只顯示所有帖子,查看我是否在代碼中犯了錯誤或循環我試圖搜索堡標籤,而不是這個工作無法通過WordPress循環中的類別查詢帖子

<section class="background-wrapper"> 
<section class="content"> 
<div class="heading"><h1>Posts tagged with "coding"..</h1></div> 
<div class="module-wrapper"> 

<?php if (have_posts()): ?> 
<?php query_posts('cat=design');//NOTE USING ('tag=css') WORKED ?> 

<?php while (have_posts()) : the_post(); ?> 
<?php wpb_set_post_views(get_the_ID()); //storing a value of a page view ?> 

    <div class="module"> 
    <article id="post-<?php the_ID(); ?>" <?php post_class(); ?>> 

    <!-- Post Title --> 
    <h1 class="post-title"> 
     <a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a> 
    </h1> 
    <!-- /Post Title --> 

    <?php html5wp_excerpt('html5wp_index'); // Build your custom callback length in functions.php ?> 

查詢標籤時,代碼是否需要不同?

+0

我不認爲你可以使用'cat = design'。相反,你可能想使用'query_posts('category_name = design');'。使用'cat',它期望param是ID。 –

回答

0

如果您使用查詢您使用的是query_posts('cat=###')那麼你需要給予查詢類別Id不是名稱。 如果你不知道ID副手,你可以找到它,你做查詢之前的東西接近這個:

$categories = get_the_category(); //gets all the categories 
$i=1; 
$name='design'; 
$id=''; 
while(count($categories) > i){ //Loops through the categories 
    if(($categories[$i-1]->cat_name)==$name){ 
     $id=$categories[$i-1]->cat_ID; //Sets the variable $id to be the id you need 
    } 
    i++; 
}; 

$id應該是你需要做的您正在使用的查詢類別ID。

0

查詢帖子幾乎總是一個壞主意,但這超出了你的問題的範圍。不過,如果我知道我整個可能的答案昨天建立你的論點時,迷迷糊糊中關於查詢的類別和標籤你的問題的權利:

//category and tag intersection 
'category__and' => 'category', 'tag__in' => 'post_tag', 

這裏是你想用的情況下查詢WP_Query我的默認模板與你交換。

$args = array(
    'posts_per_page' => -1, //-1 shows all 
    //'offset'   => 0, 
    'category'  => 'design', 
    'orderby'   => 'post_date', 
    'order'   => 'DESC', 
    //'include'   => , 
    //'exclude'   => , 
    //'meta_key'  => , 
    //'meta_value'  => , 
    'post_type'  => 'post', 
    //'post_mime_type' => , 
    //'post_parent'  => , 
    'post_status'  => 'publish', 
    'suppress_filters' => true 
); 
$query = new WP_Query($args); 
if ($query -> have_posts()) { 
    while ($query -> have_posts()) : $query->the_post(); { 
    //do stuff with the query data returned here 
    } 
} 
相關問題