Php 在带有图像的侧栏中列出Wordpress类别

Php 在带有图像的侧栏中列出Wordpress类别,php,wordpress,categories,Php,Wordpress,Categories,我将在侧边栏中列出带有图像的类别这是我如何做的(它是有效的)我这样做是因为我不想显示某些类别 <?php $latests = new WP_Query('posts_per_page=2&ignore_sticky_posts=1&cat=12'); ?> <?php echo get_cat_name(12); ?> <?php while ($latests->have_posts()) : $latests->the_post()

我将在侧边栏中列出带有图像的类别这是我如何做的(它是有效的)我这样做是因为我不想显示某些类别

<?php $latests = new WP_Query('posts_per_page=2&ignore_sticky_posts=1&cat=12'); ?>
<?php echo get_cat_name(12); ?>
<?php while ($latests->have_posts()) : $latests->the_post(); ?>
<?php if ( has_post_thumbnail() ) { the_post_thumbnail('sidebarcat'); } ?>
<?php the_title(); ?>
<?php endwhile; wp_reset_postdata(); ?>

但我需要复制每个类别的代码。。。我想所有这些只改变一个数字的代码都是一个很好的实践。还有别的办法吗

我试过用foreach,但似乎不对

<?php $latests = new WP_Query('posts_per_page=2&ignore_sticky_posts=1&cat=12'); ?>
<?php foreach($latests as $latest) :?>

    <?php while ($latests->have_posts()) : $latests->the_post(); ?>
<?php if ( has_post_thumbnail() ) { the_post_thumbnail('sidebarcat'); } ?>
<?php the_title(); ?>

    <?php endwhile; wp_reset_postdata(); ?>
<?php endforeach; ?>

最简单的方法就是这样

<?php wp_list_categories('orderby=name&exclude=3,5,9,16'); ?> 


因此,这将返回除指定类别之外的所有类别。在此之后,您可以获得您想要的类别和所有类别的实际图像。

您可以这样做:

<ul>
<?php
$cat_args=array(
//  'include' => '3,6,9', // display only these categories
  'exclude' => '3,6,9', // display all categories except categories 3,6,9
  'orderby' => 'name', // the order 
  'order' => 'ASC' // asc or desc
);

$categories=get_categories($cat_args);
  foreach($categories as $category) {
    $args=array(
      'showposts' => 2, // how many posts you want to display 
      'category__in' => array($category->term_id),
      'caller_get_posts'=>1
    );

$posts=get_posts($args);
      if ($posts) { 
        echo '<h3> <a href="' . get_category_link( $category->term_id ) . '" title="' . sprintf( __( "View all posts in: %s" ), $category->name ) . '" ' . '>' . $category->name.'</a> </h3> ';
        foreach($posts as $post) {
          setup_postdata($post); 
?>

    <li>
        <div>
            <div><a href="<?php the_permalink() ?>" title="<?php the_title(); ?>"><?php if ( has_post_thumbnail() ) { the_post_thumbnail('sidebarcat'); } ?></a></div>
            <div><a href="<?php the_permalink() ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a></div>
        </div>
    </li>


          <?php
        } // close foreach 
      } // close if  
    } // close foreach 
?>
</ul>

是的,但我需要从每个类别中获得最后2篇帖子。。。当然这是不可能的。如果你使用这个数组,在这个数组上做一个foreach,你将能够查询所有这些类别的最后2篇文章。