自定义投递类型,两个类别,两列,带分页

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

我寻找了很多方法来解决这个问题,但至少没有运气。

对不起,我的英语不太好,我尽力解释我的问题。

我有一个自定义的帖子类型,叫做\'Events\' 这有两类\'Congresses in Argentina\'\'International Congresses\', 我需要显示按列(2)排序的帖子列表,并在每个列的5个之后分页。类似这样:

格式:Cat 1 / Cat 2 [ 1 = most recent / 5 = oldest post ]

 [1] [1]
 [2] [2]
 [3] [3]
 [4] [4]
 [5] [5]
« 1 2 3 »
我想知道我是否可以在一行上显示每个类别的最后一个帖子,然后再显示下两个帖子,依此类推,因为设计需要这样才能很好地显示出来。

提前感谢您的帮助,如有任何意见,将不胜感激。

2 个回复
SO网友:bevi

这是我用来解决最初需求的实际代码,这是另一个真正可行的问题/答案,我唯一想做的是将列的每个位置放在另一个术语的同一行。

<?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
            ?>
这是我喜欢制作的图形示例:

<div class="term-row">
    <div class="col1"><h4>Term 1</h4></div>
    <div class="col2"><h4>Term 2</h4></div>
</div>
<div class="even-row">
    <div class="col1"> // here begins the 1st post of the 1st term
        <?php the_title(); ?>
        <?php the_excerpt(); ?>
    </div>
    <div class="col2"> // here begins the 1st post of the 2nd term
        <?php the_title(); ?>
        <?php the_excerpt(); ?>
    </div>
</div>
<div class="odd-row">
    <div class="col1"> // here begins the 2nd post of the 1st term
        <?php the_title(); ?>
        <?php the_excerpt(); ?>
    </div>
    <div class="col2"> // here begins the 2nd post of the 2nd term
        <?php the_title(); ?>
        <?php the_excerpt(); ?>
    </div>
</div>
<div class="even-row">
    <div class="col1"> // here begins the 3rd post of the 1st term
        <?php the_title(); ?>
        <?php the_excerpt(); ?>
    </div>
    <div class="col2"> // here begins the 3rd post of the 2nd term
        <?php the_title(); ?>
        <?php the_excerpt(); ?>
    </div>
</div>
<div class="pagination">
    <a href="#">Prev</a>
    <span class="current">1</span>
    <a href="#">2</a>
    <a href="#">Next</a>
</div>
希望它清楚地表明:)

SO网友:bevi

这是我用来让它工作的代码,至少这是一个开始:)

这是第一列和第一期海关税:

<ul style="float:left;width:45%;">
<?php $page = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1;
query_posts("post_type=evento&categorias-eventos=congresos-en-argentina&showposts=3&paged=$page");
if ( have_posts() ) : while ( have_posts() ) : the_post() ?>
    <li>
        <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>
    </li>
<?php endwhile; endif; ?>

此处开始第二列和第二期海关税:

<ul style="float:left;width:45%;">
<?php $page = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1;
query_posts("post_type=evento&categorias-eventos=congresos-internacionales&showposts=3&paged=$page");
if ( have_posts() ) : while ( have_posts() ) : the_post() ?>                
    <li>
        <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>
    </li>
<?php endwhile; endif; ?>

最后是对自定义分页函数的调用(通过谷歌搜索)

<?php if ( function_exists(\'fb_paging_bar\') ) fb_paging_bar(); ?>

结束

相关推荐

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

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