【问题标题】:Post titles separated by comma in a mysql query在 mysql 查询中以逗​​号分隔的帖子标题
【发布时间】:2013-02-14 09:29:25
【问题描述】:

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

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

【问题讨论】:

    标签: mysql arrays wordpress


    【解决方案1】:

    你应该使用:

    echo implode( ', ', $the_posts );

    foreach 循环之后。

    【讨论】:

      【解决方案2】:

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

      $titles = array();
      
      // logic to save all titles into this array
      
      $comma_seperated = implode(', ', $titles);
      

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

      $titles = array_unique($titles); 
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-05-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多