带有变量类别的Wordpress query_post

时间:2013-05-05 21:06:17

标签: wordpress twitter-bootstrap

我正在尝试将我的博客内容放入引导标签中,其中每个标签都是一个类别,因此它是一种过滤器。

一切顺利,但我无法动态分离标签上的类别帖子。

这是我的第一个代码,我在其中使标签获取当前类别:(一切都很好)

<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或类似的东西来制作它。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

不要在变量名称周围使用单引号,请使用双引号。单引号将从字面上解释为不扩展为变量的值,因此echo '$var';将准确地为您提供$var。设置category_name参数时,您的代码应使用双引号或无引号,假设$current_cat等于您要查询的名称。

双引号

'category_name' => "$current_cat",

没有引号

'category_name' => $current_cat,

答案 1 :(得分: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的参数会显示此类别以及该类别的任何子的帖子。