如何使用循环中的逗号分隔帖子标题?

时间:2019-11-19 作者:Pete

如何用逗号列出我的所有帖子(但不要在最后一篇帖子之后)。。。

<?php 
// WP_Query arguments
$args = array(
    \'post_type\'              => array( \'post\' ),
    \'tax_query\' => array(
        array (
            \'taxonomy\' => \'day_time\',
            \'field\' => \'slug\',
            \'terms\' => \'mon-night\')),
    \'post_status\'            => array( \'publish\' ),
    \'nopaging\'               => false,
    \'posts_per_page\'         => \'20\',
    \'ignore_sticky_posts\'    => true,
    \'order\'                  => \'DESC\',
    \'separater\'                         => \', \',
    \'orderby\'                => \'modified\',
);

// The Query
$query = new WP_Query( $args );

// The Loop
if ( $query->have_posts() ) {
    while ( $query->have_posts() ) {
        $query->the_post(); ?>
        <?php the_title(); ?>
<?php   }
} else { ?>

<?php }

// Restore original Post Data
wp_reset_postdata(); 
?>


<?php } else { ?>
<?php } ?>

1 个回复
最合适的回答,由SO网友:WebElaine 整理而成

不要立即输出所有内容,而是将其保存到变量中,以便可以有条件地在项目之间添加逗号(可能还有空格):

<?php
// The Loop
if ( $query->have_posts() ) {
    // Save the number of posts found
    global $wp_query;
    $total_posts = $wp_query->post_count;
    // Set a counter variable
    $i=0;
    while ( $query->have_posts() ) {
        $query->the_post();
        // Save the title to a variable instead of outputting
        $output .= get_the_title();
        // Increment the counter each time
        $i++;
    }
    // Outside the loop, since you only want 1 comma each time
    if($i != $total_posts) {
        // Add a comma and a space
        $output .= \', \';
    }
    // Last but not least, display the output
    echo $output;
}
?>

相关推荐

Modals using loops and ACF

我试图制作一个页面,查询特定类别(“景点”)的每一篇帖子。我已经能够成功地获得帖子,我只需要让modals工作。我在我的循环中做了一个按钮,它的标题是循环所在的任何帖子。我希望这样,每当人们单击该按钮时,它就会打开一个模式,显示代码中ACF I列表中的所有字段。不过,我有一些问题。由于某种原因,我无法让javascript正常工作。现在都在页面模板文件中,但我已经尝试通过函数将脚本排队。php等。我的猜测是,我正在尝试制作文档。getElementsByClassName而不是documents。getE