在循环中的帖子之间放置一个分隔符

时间:2017-01-05 11:04:24

标签: php html wordpress

我有以下循环,将每个帖子的标题引入我的页面

HTML

<?php 
if (have_posts()) {
    while (have_posts()) {
        the_post(); 
        echo '<div class="cell"><a href="'.get_the_permalink().'">'.get_the_title().'</a></div>';
    } // end while
} // end if
?>

CSS

.cell {
    display: inline-block;
    margin: 0 10px;
}

我想在每个标题/链接之间放置一个分隔符(不是在结尾处)

示例输出

link  <div class="separate"></div>  
link  <div class="separate"></div>  link

3 个答案:

答案 0 :(得分:1)

使用附加标志变量$first

的简单解决方案
<?php 
    if ( have_posts() ) {
        $first = true;

        while ( have_posts() ) {
            the_post(); 

            if($first){
                $first = false;
            } else {
                // echo separator
            }

            echo '<div class="cell"><a href="'.get_the_permalink().'">'.get_the_title().'</a></div>';
        } // end while
    } // end if
?>

答案 1 :(得分:0)

你可以在回声结尾放入一个<hr>元素:

echo '<div class="cell"><a href="'.get_the_permalink().'">'.get_the_title().'</a></div><hr>';

答案 2 :(得分:0)

您必须将计数器与每页帖子进行比较,以检查您是否已到达上一篇文章。

您可以从选项表中获得每页帖子,如下所示:

$default_posts_per_page = get_option( 'posts_per_page' );

检查您是否已到达最后一篇文章,然后不打印出分隔符。

$counter = 1;
while ( have_posts() ) {

    //your stuffs

    if ($counter != $default_posts_per_page) {
        //print separator
    }

    $counter++;
}