【问题标题】:Add container DIVs around sections in loop在循环中的部分周围添加容器 DIV
【发布时间】:2015-05-20 14:36:08
【问题描述】:

我在下面有一段代码几乎可以完成我想要做的事情,除了我需要修改它以便它在每行中的每组项目周围添加容器 DIV。下面代码的第三个 sn-p 显示了我所追求的输出。我在每一行中添加了标题组和内容组。请问有人可以添加拼图的缺失部分吗?

  1. 以下 PHP...

     <?php
            /* To get current page from query var */
            $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
            $args = array('post_type' => array('post'),'posts_per_page' => -1,'paged' => $paged);
    
             /* Create custom WP_Query */
            $custom_query = new WP_Query( $args );
            $post_ids = array();
            if ( $custom_query->have_posts() ) {
                /* the wordpress loop */
                while ( $custom_query->have_posts() ) : $custom_query->the_post();
                    /* Start my loop to get all post id in one array called "$post_ids" */
                    $post_ids[] = get_the_id();
                endwhile;
                /* end of the loop */
            } else {
                // no posts found
            }
            /* Restore original Post Data */
            wp_reset_postdata();
    
    
            $count = 1;
            $post_title = $post_content = '';
            foreach( $post_ids as $post_id ) 
            {
                if ($count%5 == 1)
                {  
                     echo '<div class="row">';
                }
                $post_title .= '<div class="title">'.get_the_title($post_id).'</div>';
                $post_content .= '<div class="content">'.get_post_field('post_content', $post_id).'</div>';
                if ($count%5 == 0)
                {
                    echo $post_title;
                    echo  $post_content;
                    echo "</div>";
                    $post_title = $post_content = '';
                }
                $count++;
            }
            if ($count%5 != 1) {
                echo $post_title;
                echo  $post_content;
                echo "</div>";
            }
            ?>
    
  2. ...当前输出此 HTML...

     <div class="row">
                <div class="title">title1</div>
                <div class="title">title2</div>
                <div class="title">title3</div>
                <div class="title">title4</div>
                <div class="title">title5</div>
                <div class="content">content1</div>
                <div class="content">content2</div>
                <div class="content">content3</div>
                <div class="content">content4</div>
                <div class="content">content5</div>
            </div>
            <div class="row">
                <div class="title">title6</div>
                <div class="title">title7</div>
                <div class="title">title8</div>
                <div class="title">title9</div>
                <div class="title">title10</div>
                <div class="content">content6</div>
                <div class="content">content7</div>
                <div class="content">content8</div>
                <div class="content">content9</div>
                <div class="content">content10</div>
            </div>
            <div class="row">
                <div class="title">title11</div>
                <div class="title">title12</div>
                <div class="title">title13</div>
                <div class="title">title14</div>
                <div class="title">title15</div>
                <div class="content">content11</div>
                <div class="content">content12</div>
                <div class="content">content13</div>
                <div class="content">content14</div>
                <div class="content">content15</div>
            </div>
    
  3. ...但是我想像这样将容器 DIV 添加到每一行中的每个部分...

     <div class="row">
      <div class="container">
                <div class="title">title1</div>
                <div class="title">title2</div>
                <div class="title">title3</div>
                <div class="title">title4</div>
                <div class="title">title5</div>
       </div>
      <div class="container">
                <div class="content">content1</div>
                <div class="content">content2</div>
                <div class="content">content3</div>
                <div class="content">content4</div>
                <div class="content">content5</div>
       </div>
     </div>
     <div class="row">
      <div class="container">
                <div class="title">title6</div>
                <div class="title">title7</div>
                <div class="title">title8</div>
                <div class="title">title9</div>
                <div class="title">title10</div>
       </div>
         <div class="container">
                <div class="content">content6</div>
                <div class="content">content7</div>
                <div class="content">content8</div>
                <div class="content">content9</div>
                <div class="content">content10</div>
        </div>
       </div>
      <div class="row">
      <div class="container">
                <div class="title">title11</div>
                <div class="title">title12</div>
                <div class="title">title13</div>
                <div class="title">title14</div>
                <div class="title">title15</div>
       </div>
      <div class="container">
                <div class="content">content11</div>
                <div class="content">content12</div>
                <div class="content">content13</div>
                <div class="content">content14</div>
                <div class="content">content15</div>
       </div>
     </div>
    

【问题讨论】:

  • 您的输出样本看起来没有任何不同,除了换行。你能提供一个更清楚的例子吗?
  • 我在每行的标题组和内容组周围添加了&lt;div class="container"&gt;
  • 这样更清楚,可以帮助您更快地得到答案。
  • 您的查询非常昂贵,您在每个帖子中运行 2 个查询,您可以通过一个查询 20 个帖子而不是 40 多个查询来完成所有这一切 20 个帖子:-)

标签: php wordpress for-loop count


【解决方案1】:

改变

if ($count%5 == 0)
        {
            echo $post_title;
            echo  $post_content;
            echo "</div>";
            $post_title = $post_content = '';
        }

if ($count%5 == 0)
        {
            echo '<div class="container">';
            echo $post_title;
            echo "</div>";
            echo '<div class="container">';
            echo  $post_content;
            echo "</div>";
            echo "</div>";
            $post_title = $post_content = '';
        }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-06
    • 2020-05-14
    • 2019-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-24
    相关资源
    最近更新 更多