我如何才能获得所有帖子的前50%(在自定义帖子类型内)?

时间:2013-08-26 作者:josh

我想做一个多列布局。由于CSS3对专栏布局的采用还很薄弱,我想也许我可以抓住我所有帖子的前半部分(然后是第二部分),并将它们添加到自己的UL元素中。

我不确定Wp\\U查询如何/是否可能做到这一点?

我想以字母顺序结束我的帖子,但将其分为两个列表(我想使用两个查询),因此:

<ul>
<li>a</li>
.
.
.
</li>m</li>
</ul>
<ul>
<li>n</li>
.
.
.
</li>z</li>
</ul>
然后,我可以用CSS设置每个列表的样式,并获得类似CSS3中多列布局的布局。

有没有人知道如何在这里构建我的查询?

edit to explain how this isn\'t a duplicate

这是关于形成一个两列布局的问题,当然,但问题非常不同:“如何获得所有帖子的一半”,而不是如何解决一个非常具体的布局用例,就像链接的“复制”一样。(我没有找到,因为这不是同一个问题)。

此外,我在寻找按字母顺序排列、垂直降序的帖子,而不是示例中的A | B、C | D。

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

如果要将其拆分为两个列表,可以使用wp_count_posts() 数一数你发表的帖子的数量

$total_cpt = wp_count_posts(\'cpt\')->publish;
除以2:

$half_of_cpt = sprintf( \'%d\', $total_cpt / 2 );
然后你可以在循环中使用这个数字来分割你的列表。

SO网友:gmazzap

以下内容

将适用于每个查询(即使使用分页),因此它更灵活,只需一个循环(作为wp_count_posts)wp_count_posts 这样做更快,不需要任何其他变量ouside循环,因此更简单

$args = array(\'post_type\'=>\'cpt\', \'orderby\'=>\'title\', \'order\'=>\'ASC\'); // any args here
$query = new WP_Query($args);

if ( $query->have_posts() ) :
  echo \'<ul>\';
  while ( $query->have_posts() ) : $query->the_post();

    echo \'<li>\' . get_the_title() . \'</li>\';
    if ( ( $query->current_post + 1 ) == ceil($query->post_count / 2) ) echo \'</ul><ul>\';

  endwhile;
  echo \'</ul>\';
endif;

结束

相关推荐

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

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