在mysql查询中以逗​​号分隔的帖子标题

时间:2013-02-28 09:00:51

标签: mysql arrays wordpress

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

<?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;?>

使用此代码,它开始在输出中公布第一个帖子,如下所示:

  

我的第一个冠军我的第一个冠军,我的第二个冠军我的第一个冠军,我的   第二个冠军我的第三个冠军我的第一个冠军,

...

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

2 个答案:

答案 0 :(得分:0)

您应该使用:

echo implode( ', ', $the_posts );

foreach循环之后

答案 1 :(得分:0)

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

$titles = array();

// logic to save all titles into this array

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

并且你可以在内爆之前尝试使用array_unique,如果这可以解决你的问题。

$titles = array_unique($titles);