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

このコードを使用すると、出力の最初の投稿が次のように複製され始めます。

私の最初のタイトル 私の最初のタイトル、私の 2 番目のタイトル 私の最初のタイトル、私の 2 番目のタイトル 私の 3 番目のタイトル 私の最初のタイトル、

…</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);

問題を解決できる場合は、内破する前に array_unique を試すことができます。

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