Wordpress - 标题中第一个单词后的换行符

时间:2014-12-10 15:30:42

标签: php wordpress while-loop

所以我有点工作,但输出错误。

E.G。我有3个页面正在通过循环查询。

  1. Chesty Coughs
  2. 巧克力纽扣
  3. Dairy Milk
  4. 我希望他们看起来像这样:

    犯支气管炎

    咳嗽(在第一个单词之后带有br)

    这是我迄今为止所管理的内容,似乎有效:

    $tit = get_the_title();
    $parts = preg_split('/\s*,\s*/', $tit); 
    foreach($parts as $part) { 
        preg_match_all('/\S+\S+/', $part, $names); 
        foreach($names[0] as $name) { 
            $separate.= "$name<br/>"; 
        } 
    }
    

    然而,在每篇文章之后,最后一个标题似乎被添加到

    之前

    E.G。 &LT; - - - firstpost - - - &gt;

    犯支气管炎
    咳嗽

    &LT; - - - 下一篇文章 - - - &gt;

    犯支气管炎
    咳嗽
    巧克力
    按钮

    &LT; - - - 下一篇文章 - - - &gt;

    犯支气管炎
    咳嗽
    巧克力
    按钮
    乳品牛奶

    这是我的整个循环:

     $args = array(
     'post_type' => 'page',
     'post_status' => 'publish',
     'meta_query' => array(
      array(
       'key' => '_wp_page_template',
       'value' => 'template-name.php' // template name as stored in the dB
        )
     )
     );
    $my_query = new WP_Query($args);
    // The Loop
    if ( $my_query->have_posts() ) {                        
       while ( $my_query->have_posts() ) {
            $my_query->the_post();      
    
            $tit = get_the_title();
            $parts = preg_split('/\s*,\s*/', $tit); 
            foreach($parts as $part) { 
                preg_match_all('/\S+\S+/', $part, $names); 
                foreach($names[0] as $name) { 
                    $separate.= "$name<br/>"; 
                } 
            }
            echo '<h3>'.$separate.'</h3>';
        }
    }
    wp_reset_postdata();
    

    如何修复它以便正确输出?

1 个答案:

答案 0 :(得分:3)

太复杂了。你看到标题连在一起,因为你用.=告诉它。没有必要这样做。相反,只需将' '(空格)字符串替换为'\n'换行符或'<br>'

if ( $my_query->have_posts() ) {                        
   while ( $my_query->have_posts() ) {
        $my_query->the_post();      

        $title = get_the_title();
        echo '<h3>' . str_replace(" ", "<br>", $title) . '</h3>';
    }
}
wp_reset_postdata();