我正在尝试获取循环中当前帖子的数量。在我的主题中,我在一个页面上使用了多个循环。到目前为止,我已经:
$my_post_count = $wp_query->post_count;
但当我打印$my\\u post\\u count时,它会返回WP站点上所有帖子的编号。这可能与在一个页面上使用多个查询有关吗?我试着在每次循环后使用wp\\u reset\\u查询,以确保我不会以这种方式抛出东西。我做错了什么?我正在尝试获取循环中当前帖子的数量。在我的主题中,我在一个页面上使用了多个循环。到目前为止,我已经:
$my_post_count = $wp_query->post_count;
但当我打印$my\\u post\\u count时,它会返回WP站点上所有帖子的编号。这可能与在一个页面上使用多个查询有关吗?我试着在每次循环后使用wp\\u reset\\u查询,以确保我不会以这种方式抛出东西。我做错了什么?$wp_query
保持页面的主循环,不应用于创建多个循环。
如果您正在使用新WP_Query
对象,则保存它的变量将具有相应的计数:
$my_query = new WP_Query();
// stuff
$count = $my_query->post_count;
如果您正在使用get_posts()
然后WP_Query
对象不可访问,您应该只计算返回的集合:$posts = get_posts();
$count = count($posts);
我相信post\\u计数存储在全局中,因此在自定义循环之前,应该将其设置为0
, 既然您可以在循环之外使用它,但这取决于您如何构造多个查询,也许您可以将它们添加到您的帖子中?
我在循环中使用的另一种方法是使用current_post + 1
, 例如
<?php $my_query = new WP_Query();?>
<?php if ($my_query->have_posts()) :while ($my_query->have_posts()) : $my_query->the_post();
$count_posts = $my_query->current_post + 1; //counts posts in loop
endwhile;?>
使用WP\\U查询的另一种解决方案是:
<?php
$args = array(
\'post_type\' => \'post\'
);
$the_query = new WP_Query( $args );
$totalpost = $the_query->found_posts;
?>
计算包括分页在内的全部帖子的简单方法
<?php global $wp_query
echo $wp_query->found_posts; ?>
get\\u page()不像循环那样返回没有html标记的帖子内容。我需要标签。我怎样才能解决这个问题?我不想更改所见即所得编辑器,这是一个糟糕的解决方案http://wordpress.org/support/topic/preserve-html-with-get_pages