我正在努力实现this result (即静态HTML)和this 这就是我目前所得到的。以下是我采取的方法:
为“位置”创建了一个CPT创建了一个自定义分类“区域”,并将其与“位置”关联。左侧面板是文章标题列表,右侧是文章内容they both are in separate divs
我还需要向两个div添加一个递增类,这是我使用“for”循环所做的,我认为我的循环(for和WP\\u查询)中存在的问题,首先我必须为WP\\u查询声明两个具有不同名称的相似数组,因为奇怪的是,我无法为单独的div使用单个数组:$locationsArray = array(
\'post_type\' => \'location\',
\'posts_per_page\' => \'-1\',
\'order_by\' => \'title\',
\'order\' => ASC
);
$locationsLoop = new WP_Query($locationsArray);
$locationsArray2 = array(
\'post_type\' => \'location\',
\'posts_per_page\' => \'-1\',
\'order_by\' => \'title\',
\'order\' => ASC
);
$locationsLoop2 = new WP_Query($locationsArray2);
左侧面板的代码为:<div class="st_tabs">
<a href="#" class="st_prev">prev</a><a href="#" class="st_next">next</a>
<div class="st_tabs_wrap">
<ul class="st_tabs_ul">
<?php while($locationsLoop -> have_posts()) : $locationsLoop -> the_post(); ?>
<?php $count_posts = wp_count_posts(\'location\'); ?>
<?php for($i=1;$i<=$count_posts->publish;$i++){ ?>
<li>
<a href="#tab-<?php echo $i; ?>" rel="tab-<?php echo $i; ?>" class="st_tab st_tab_<?php echo $i; ?>">
<?php the_title(); ?>
</a>
</li>
<?php } ?>
<?php wp_reset_postdata(); endwhile; ?>
</ul>
</div>
</div>
包含帖子内容的右侧部分的代码为:<div class="st_views">
<?php while($locationsLoop2 -> have_posts()) : $locationsLoop2 -> the_post(); ?>
<?php for($j=1;$j<=$count_posts->publish;$j++){ ?>
<div class="tab-<?php echo $j; ?> st_view">
<div class="st_view_inner">
<h3 class="title"><?php the_title(); ?></h3>
<div class="row">
<div class="large-12">
<div class="left">
<?php the_content(); ?>
</div>
<div class="right">
Google Map
</div>
</div>
</div>
</div>
</div>
<?php } ?>
<?php wp_reset_postdata(); endwhile; ?>
</div>
我希望你能通过比较目标和当前结果,找出我错在哪里。
最合适的回答,由SO网友:Pieter Goosen 整理而成
主查询有一个循环计数器内部版本,您可以通过$wp_query->current_post
. 这个计数器从零开始,所以你很可能会在这个计数上加上一个,比如$wp_query->current_post + 1
此外,您不需要单独统计帖子,这也是一个内置函数,您可以使用$wp_query->found_posts
. 这将返回查询中的帖子总数
EDIT
wp_reset_postdata()
应使用
after 循环,而不是内部,所以你应该移动
wp_reset_postdata()
至之后
endwhile