使用WP_QUERY在具有递增类的单独div中发布数据

时间:2014-09-19 作者:nimsrules

我正在努力实现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>
    
    我希望你能通过比较目标和当前结果,找出我错在哪里。

  • 1 个回复
    最合适的回答,由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

    结束

    相关推荐

    Wordpress loop is not working

    有人能告诉我为什么wordpress的博客会反复循环标题和横幅吗?似乎不仅仅是循环帖子,而是循环整个页面。此代码在我的内容中。php文件。任何帮助都将不胜感激。以下是我的博客链接:http://testing.printlabelandmail.com/blog/<?php /** * The default template for displaying content. */ get_header(); ?> <!-- Start T