用<Span>括起标题的前两个单词

时间:2019-09-10 作者:Stuart66

我想将标题的前两个单词括在a中,以得到以下结果:

最佳照片前5名

我尝试使用下面的代码,但它只返回第一个单词。如何选择2个单词?

非常感谢。

    function add_label_to_post_title( $title = \'\' ) {
       if(trim($title) != "")
       {
      $ARR_title = explode(" ", $title);

      if(sizeof($ARR_title) > 1 )
          {
             $first_word = "<span>".$ARR_title[\'0\']."</span> ";
             unset($ARR_title[\'0\']);
             return $first_word. implode(" ", $ARR_title);
          }
          else
          {
              return "{$title}";
          }
       }
       return $title;
    } add_filter( \'the_title\', \'add_label_to_post_title\' );

1 个回复
最合适的回答,由SO网友:freejack 整理而成

您可以这样做:

function add_label_to_post_title( $title = \'\' ) {
    global $post;

    if( \'post\' == $post->post_type && trim( $title ) != "" ){
        $title_words = explode( " ", $title );
        $word_count = count( $title_words );

        //Sets how many words should be wrapped
        $words_to_wrap = 2;
        $last_word_index = $word_count > $words_to_wrap ? $words_to_wrap - 1 : $word_count - 1;

        $title_words[0] = \'<span>\' . $title_words[0];
        $title_words[ $last_word_index ] = $title_words[ $last_word_index ] . \'</span>\';

        $title = implode( \' \', $title_words );
    }
    return $title;
}
add_filter( \'the_title\', \'add_label_to_post_title\' );
您可以更改$words_to_wrap 选择span元素中应包含多少单词。如果标题的字数少于$words_to_wrap 值它将仅包装可用的值。

相关推荐