2013-05-05 63 views
0

我试图把我的博客内容放入引导标签,其中每个标签是一个类别,所以它是一种过滤器。Wordpress query_post变量类别

一切工作正常,但我无法动态分类标签上的类别帖子。

这是我的第一个代码,在那里我做的标签获取当前的类别:(这里都好)

<ul id="catstab" class="nav nav-tabs nav-stacked cat_list"> 
<?php $categories = get_categories(); { 
    foreach($categories as $category){     
    echo "<li><a href='#" . $category->slug . "' data-toggle='tab'>" . $category->name . "</a></li>"; 
    } // end foreach 
    } 
    ?>      
</ul> 

然后我为每一个内部循环每个标签的容器:(都好这里太)

<div id="cattabscontent" class="tab-content"> 
    <?php foreach (get_categories(array('hide_empty'=>false)) as $category) 
    { 
     echo '<div class="tab-pane fade" id="' . $category->slug . '">'; 
     echo get_template_part("loop"); 
     echo '</div>'; 
    } ?>  

</div> 

最后,这是我的循环的query_post,这是我有问题,我需要在这里是为了给类变量($ current_cat)当前类别的价值,所以它会在每个标签上获得正确的帖子。

<?php query_posts(array(
    'category_name' => '$current_cat', 
)); 
?> 
<?php if (have_posts()): while (have_posts()) : the_post(); ?> 
. . . 

我曾经想过给可变他的父母的ID的价值,但我认为它仅使用PHP是不可能的,我不知道该怎样它使用AJAX或类似的东西做的想法。

有什么想法?

回答

1

请勿在变量名称周围使用单引号,请使用双引号。单引号将被解释为不会扩展到变量的值,因此echo '$var';会给你准确的$var。在设置category_name参数时,您的代码应使用双引号或不使用引号,前提是$current_cat等于您要查询的名称。

双引号

'category_name' => "$current_cat", 

没有引号

'category_name' => $current_cat, 
0

尝试使用category__in参数如下:

<?php query_posts(array(
    'category__in' => '$current_cat_id', 
)); 
?> 
<?php if (have_posts()): while (have_posts()) : the_post(); ?> 

参数category__in显示有这个类别的帖子,而不是那个类别的子女。在这种情况下,您将不得不使用类别ID。

另一方面,您正在使用的参数category_name显示此类别的和该类别的任何子类的帖子。