2009-11-22 104 views
7

我是新来的Wordpress,一直在努力创建一个类别循环的我的头发。循环应该:通过所有类别 循环通过wordpress类别

  • 回声出类别名称(与链接到
    1. 循环呼应了最后5帖在该类别中(与永久张贴)

    每个HTML代码将是

    <div class="cat_wrap"> 
        <div class="cat_name"> 
         <a href="<?php get_category_link($category_id); ?>">Cat Name</a> 
        </div> 
        <ul class="cat_items"> 
         <li class="cat_item"> 
         <a href="permalink">cat item 1</a> 
         </li> 
         <li class="cat_item"> 
         <a href="permalink">cat item 2</a> 
         </li> 
         <li class="cat_item"> 
          <a href="permalink">cat item 3</a> 
         </li> 
         <li class="cat_item"> 
         <a href="permalink">cat item 4</a> 
         </li> 
         <li class="cat_item"> 
         <a href="permalink">cat item 5</a> 
         </li> 
        </ul> 
    </div> 
    

    请帮助

  • +0

    是模板部分还是其他文件? – streetparade 2009-11-22 23:35:47

    回答

    6

    海兰让事情简单在这里是你如何解决这个问题

    <?php wp_list_categories('show_count=1&title_li=<h2>Categories</h2>'); ?> 
    
    +1

    是的,使用wp_list_categories并在设置 - 阅读中,将您的“博客页面最多显示”设置为5. – Michael 2009-11-23 03:10:07

    +0

    wp_list_categories()的唯一问题是您无法将其输出控制在任何适当程度。 – 2014-10-14 14:01:55

    8

    哎呀,错过了你想要5个员额

    <?php 
    //for each category, show 5 posts 
    $cat_args=array(
        'orderby' => 'name', 
        'order' => 'ASC' 
        ); 
    $categories=get_categories($cat_args); 
        foreach($categories as $category) { 
        $args=array(
         'showposts' => 5, 
         'category__in' => array($category->term_id), 
         'caller_get_posts'=>1 
        ); 
        $posts=get_posts($args); 
         if ($posts) { 
         echo '<p>Category: <a href="' . get_category_link($category->term_id) . '" title="' . sprintf(__("View all posts in %s"), $category->name) . '" ' . '>' . $category->name.'</a> </p> '; 
         foreach($posts as $post) { 
          setup_postdata($post); ?> 
          <p><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></p> 
          <?php 
         } // foreach($posts 
         } // if ($posts 
        } // foreach($categories 
    ?> 
    
    +0

    我发现在顶部添加了内联'global $ post;'需求,[https://codex.wordpress.org/Function_Reference/setup_postdata](https://codex.wordpress.org/Function_Reference/setup_postdata) – MrG 2013-10-11 15:52:18

    +0

    @MrG除非你在循环中使用它,是的。 – 2014-10-14 13:43:26

    1

    我已经通过嵌套由这段代码循环类别。共享。

     //Start on the category of your choice  
         ShowCategories(0); 
    
         function ShowCategories($parent_category) { 
           $categories = get_categories(array('parent' => $parent_category, 'hide_empty' => 0)); 
           foreach ($categories as $category) { 
            ?><ul><li><?=$category->cat_name;?><? 
            ShowCategories($category->cat_ID); 
            ?></li></ul><? 
           } 
         }