0

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

一切工作顺利,但我无法动态分离选项卡上的类别帖子。

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

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

任何想法?

4

2 回答 2

1

不要在变量名周围使用单引号,使用双引号。单引号将按字面意思解释,而不是扩展为变量的值,所以echo '$var';会给你$var准确的。您的代码在设置参数时应该使用双引号或不使用引号category_name,假设它$current_cat等于您要查询的名称。

双引号

'category_name' => "$current_cat",

没有引号

'category_name' => $current_cat,
于 2013-05-05T23:13:17.200 回答
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另一方面,您使用的参数显示具有此类别的帖子以及该类别的任何子项。

于 2013-05-06T06:40:37.733 回答