当前位置: 首页 > 知识库问答 >
问题:

Wordpress输出类别单亲儿童帖子类别

阎知
2023-03-14

我正在为我目前所拥有的而挣扎。所以我想循环通过一个单一的父类别,并输出所有的子类别帖子与一个链接。

我可以让它工作,但它也会循环所有父类别。

所以我想要的是

Services // Parent Category (Do not want to show)
- Branding // Child Category
-- Post 1a
-- Post 2a 
- Design // Child Category
-- Post 1b

我的当前代码如下所示,它为每个父级和子级类别创建了一个列表,因此:

我觉得我的$args也许能解决这个问题。

<?php  
  $cats = get_categories('child_of='.get_query_var('cat')); 

  foreach ($cats as $cat) :

    $args = array(
      'category__in' => array($cat->term_id)
    );

    $my_query = new WP_Query($args); 
      if ($my_query->have_posts()) : 
?>
  <ul>
<?php
  while ($my_query->have_posts()) : $my_query->the_post(); 
?>
  <li><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></li>
<?php endwhile; ?>

  </ul>

<?php else : 
  echo 'No Posts for '.$cat->name;                
  endif; 
  endforeach; 
?>

这表明:

Services // Parent Category
"No posts to show"
- Branding // Child Category
-- Post 1a
-- Post 2a 
- Design // Child Category
-- Post 1b
Uncategorized
-- Sample Post

共有1个答案

臧增
2023-03-14

使用cat而不是category__in并且您还需要运行wp_reset_postdata()之后再次使用主查询的当前post。试试下面的代码。

<?php  

    $cats = get_categories( 'child_of='.get_query_var('cat') ); 

    foreach ($cats as $cat) :

        $args = array(
          'cat' => $cat->term_id
        );

        $my_query = new WP_Query($args); 

        if ($my_query->have_posts()) : ?>
            <ul>
                <?php while ($my_query->have_posts()) : $my_query->the_post();  ?>
                    <li><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></li>
                <?php endwhile; wp_reset_postdata(); ?>
            </ul>
        <?php else : 

            echo 'No Posts for '.$cat->name;                

        endif; 

    endforeach; 
?>
 类似资料:
  • 我创建了一个名为制造商的自定义帖子类型,并添加了大量帖子和类别。单个帖子页面工作,但类别/存档页面不显示任何帖子。 制造商被分成不同的类别,我需要显示每个类别中所有帖子的存档。我去工厂的时候 http://localhost/category/manufactures/ge-speedtronic/ 这就是令人困惑的地方。我为自定义帖子类型“制造商”使用的类别也显示在我的其他自定义帖子类型和默认帖

  • 我试图在一个页面上显示来自两个类别的帖子(6) 我将如何将类别ID“7”添加到该代码中,以使所有内容都像上面解释的那样工作?提前谢谢!

  • 我有一个自定义的帖子类型和一个像这样创建的公文包分类法: 当我在查询中使用它时,它的工作原理应该是这样的。它显示在后端的菜单中,以及此自定义帖子类型的类别。 我的问题是,当我尝试从某个类别检索所有帖子时(通过单击类别名称),我发现

  • 我已经为产品创建了一些自定义类别,它有子类别,子类别还有更多的子类别。现在我首先显示主要类别。如果我在那里显示子类别,那么将显示与该类别及其子类别相关的所有子类别。我想一步一步地向他们展示。也就是说,如果用户单击主类别,则会转到其子类别页面。如果用户单击其子类别之一,则应转到子类别,如果没有子类别,则显示产品。这是什么代码 它覆盖了以前的排序顺序。也就是说,如果从仪表板中,我们按排序顺序给出2到3

  • 问题内容: 我想查询存储在MySQL数据库中的Wordpress数据,以便获得带有列的结果: post_id category tags 预期产量: 这是我尝试过的: 结果,我得到了想要的列以及期望的内容,但是 我只有一行 。 我究竟做错了什么? 问题答案: 如评论中所述,我包括一个聚合函数,但没有“ group by”子句。 现在,这似乎可行(只需添加一行即可): 谢谢

  • 我有两个不同类别的自定义帖子类型(公文包),然后我有两个页面显示两个类别的帖子。 我调用页面时的url类似于mysite.com/pagename,其中pagename与公文包类别同名。 我的问题是,当我进入单一公文包时,url会变成mysite.com/portfolio/portfolio-name 有没有办法在url中显示投资组合类别?应该像mysite.com/portfolio-cate