0

我知道当我有一个循环时,我可以用逗号分隔帖子标题:

<?php           
$medium_posts = new WP_Query ($medium_query);
?>

<span class="archive-list"> 
<?php while ( $medium_posts->have_posts() ) : $medium_posts->the_post(); ?>
<?php echo (($medium_posts->current_post!=0)?'<span class="separator">,</span> ':''); ?><a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a>
<?php endwhile ?>
</span>

但是如果我有一种情况,我有一个 mysql 查询,并且喜欢用逗号分隔帖子标题怎么办?

        <?php
    $posts = $wpdb->get_col("
                SELECT $wpdb->posts.*
                FROM $wpdb->posts
                WHERE post_status = 'publish' 
                AND post_type = 'works' 
                AND MONTH(post_date) = '".$month."' 
                AND YEAR(post_date) = '".$year."' 
                ORDER BY post_date DESC");

        $the_posts = array();
        foreach($posts as $post) :
    ?>

<span class="archive-list">
<?php
$the_posts[] = '<a href="' . get_permalink( $post ) . '">' . get_the_title( $post ) . '</a>';
echo implode( ', ', $the_posts ); ?>
</span> 

    <?php endforeach;?>

使用此代码,它开始复制输出中的第一个帖子,如下所示:

我的第一个标题 我的第一个标题 我的第二个标题 我的第一个标题 我的第二个标题 我的第三个标题 我的第一个标题

…</p>

如何获得用逗号分隔的标题?像这样:标题1,标题2,标题3

4

2 回答 2

0

你应该使用:

echo implode( ', ', $the_posts );

foreach循环后。

于 2013-02-28T09:06:15.863 回答
0

首先将所有标题存储在一个数组中并使用 implode

$titles = array();

// logic to save all titles into this array

$comma_seperated = implode(', ', $titles);

如果可以解决您的问题,您可能可以在 implode 之前尝试 array_unique。

$titles = array_unique($titles); 
于 2013-02-28T10:18:53.327 回答