按上次更新和显示图像对X个类别进行排序

时间:2011-08-14 作者:Martin-Al

我想显示X个类别,并按上次更新对它们进行排序。

我还想抓住与类别的最新职位的形象。

<img src="<?php echo get_image(\'article_image\',1,1,0,NULL,$res75); ?>" />
因此,类别列表将通过图像显示,并在下面显示相应的类别名称。

按上次更新排序。

我该怎么做呢?

2 个回复
最合适的回答,由SO网友:goldenapples 整理而成

这里有一个解决方案:

global $wpdb;

$cat_array = $wpdb->get_results( "
    SELECT terms.*, posts.ID as post_ID
    FROM wp_terms terms 
    JOIN wp_term_taxonomy term_taxonomy 
        ON terms.term_id = term_taxonomy.term_id
    JOIN wp_term_relationships term_relationships 
        ON ( term_relationships.term_taxonomy_id = term_taxonomy.term_taxonomy_id 
            AND term_taxonomy.taxonomy = \'category\' )
    JOIN wp_posts posts 
        ON ( posts.ID = term_relationships.object_id 
            AND posts.post_type=\'post\'
            AND posts.post_status=\'publish\' )
    GROUP BY terms.term_id
    ORDER BY posts.post_modified_gmt DESC" );

foreach ($cat_array as $cat) {

    $category = get_term_by( \'ID\', $cat->term_id, \'category\');
    $post = get_post( $cat->post_ID );

    echo \'<a href="\' . esc_attr(get_term_link($category, \'category\')) . \'" title="\' . sprintf( __( "View all posts in %s" ), $category->name ) . \'" \' . \'>\';
    echo get_the_post_thumbnail( $cat->post_ID, \'post-thumbnail\' );
    echo $category->name .\': \'.get_the_title( $post->ID ).\'</a>\'.\'<br />\';

}
该查询按您想要的顺序返回类别,并按最新帖子排序,以及该类别中最新帖子的帖子ID,然后您可以使用该ID从中获取帖子缩略图或任何其他您想要的数据(我在示例中也回显了帖子标题,只是为了说明如何进行)。

SO网友:Martin-Al

好的,所以我想出了一半的解决方案。

此代码按上次更新列出类别;

        <?php 
        $cat_array = array();
        $args=array(
          \'post_type\' => \'post\',
          \'post_status\' => \'publish\',
          \'posts_per_page\' => 10,
          \'caller_get_posts\'=> 1
          );
        $my_query = null;
        $my_query = new WP_Query($args);
        if( $my_query->have_posts() ) {
          while ($my_query->have_posts()) : $my_query->the_post();
            $cat_args=array(\'orderby\' => \'none\');
            $cats = wp_get_post_terms( $post->ID , \'category\', $cat_args);
            foreach($cats as $cat) {
              $cat_array[$cat->term_id] = $cat->term_id;
            }
          endwhile;
        }
        if ($cat_array) {
          foreach($cat_array as $cat) {
            $category = get_term_by(\'ID\',$cat, \'category\');
            echo \'<a href="\' . esc_attr(get_term_link($category, \'category\')) . \'" title="\' . sprintf( __( "View all posts in %s" ), $category->name ) . \'" \' . \'>\' . $category->name.\'</a>\'.\'<br />\';
          }
        }
        wp_reset_query();
    ?>
但是,我不知道如何才能使其显示类别对应的图像。

对于类别X,它应该显示属于该类别中最新帖子的图像。

有人能帮忙吗?谢谢

结束

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post