如何在同一行或同一行显示一个分栏不同类别的帖子?

时间:2012-01-09 作者:bevi

我使用一个自定义查询检索帖子类型的两个类别,每列仅显示该类别的6篇帖子,如果更多的话,请使用分页。

我喜欢做的是在同一行或同一行的每列上显示每个帖子,这只是出于设计目的,我认为查询必须计算前两个帖子,放置两个div(例如),然后放置下两个div,然后再放置下一个div,直到完成第六行分页(如果有更多)。

真的很感谢任何意见或想法来解决这个问题,真的不知道怎么做。

以下是我使用的自定义查询:

<?php
                // for a given post type, return all
                $post_type = \'evento\';
                $tax = \'categorias-eventos\';
                $tax_terms = get_terms($tax);
                $post_counter = 0; // reset so we can generate columns 
                $paged = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1;

                    if ($tax_terms) { ?>

                    <ul class="column_wrap" style="width:45%; float:left;">         
                    <?php foreach ($tax_terms as $tax_term) {
                         $args = array(
                        \'post_type\' => $post_type,
                        "$tax" => $tax_term->slug,
                        \'post_status\' => \'publish\',
                        \'posts_per_page\' => 6,
                      //\'posts_per_page\' => -1,
                      //\'paged\' => $paged,
                        \'orderby\' => \'title\',
                        \'order\' => \'ASC\',
                        \'caller_get_posts\' => 1
                        ); // END $args

                        $my_query = null; // clear the query variable
                        $my_query = new WP_Query($args);

                        if( $my_query->have_posts() ) { ?>

                          <li class="column_row" style="float:left;">
                            <h4><?php echo $tax_term->name; ?></h4>
                          </li>

                            <?php while ($my_query->have_posts()) : $my_query->the_post(); ?>
                            <li class="column_row" style="float:left;">
                                <div class="retailer_wrap retailer_id-<?php the_ID(); ?>">
                                    <p><strong><?php the_title(); ?></strong></p>
                                    <p><?php echo get_post_meta($post->ID, \'eventdate\', true);?></p>
                                    <p><?php echo get_post_meta($post->ID, \'eventplace\', true);?></p>
                                </div>                                  
                            </li>
                            <?php $post_counter++; ?>

                            <?php if ( 0 == $post_counter % 6 ) { ?>
                      </ul>                          
                      <ul class="column_wrap noneed" style="width:45%; float:left;">
                    <?php } // END if $post_counter ?>
                  <?php
                  endwhile;
                  //wp_pagenavi( array( \'query\' => $my_query ) ); 
                } // END if have_posts loop
                wp_reset_query();

              } // END foreach $tax_terms ?>
              </ul>
            <?php } // END if $tax_terms
            ?>

1 个回复
SO网友:Wyck

输出相同查询但样式不同的一种方法是使用current_post 或与rewind_posts, 或使用rewind_posts 单独地

例如:

您的初始查询

 if ($my_query->have_posts()) :while ($my_query->have_posts()) : $my_query->the_post();

  $counter_id = $my_query->current_post + 1;   //this is the counter

// then use a conditional to style each on based on `# or %

 if ($wp_query->current_post % 2 == 0)

// add custom styles

endwhile; else:

// 
// Or rewind the post with a count and conditional

rewind_posts();  //rewind the post back to the start

if $counter_id == 1  //do some style
if $counter_id > 3   // do some style
//etc
另一个更简单的选择是只使用多个单独的循环(和DB查询)

我希望这个逻辑有意义并有帮助,我没有时间真正编写查询并测试它。

结束

相关推荐

WP_LIST_CATEGORIES:获取类别的最新特色图像

我在考虑一种更好的方式来显示侧边栏中的类别。我希望也能显示图像/缩略图,而不是简单的列表样式。目前我正在使用以下内容:<?php wp_list_categories(\'show_last_updated=1&show_count=1&title_li=\'); ?> 只需显示每个类别的名称/链接+帖子数量。我想保留,但也要添加缩略图。我一直在浏览这块板寻找答案,也在考虑如何做,但我还没有找到解决方案。我想我必须创建一个函数来获取该类别中最新帖子的特征图像。如果一