1

Wordpress サイトのすべての投稿タイトルの最初の単語の周りに「スパン」を追加する関数を使用しようとしていますが、この非常によく似た質問が見つかりました。H2要素内にリンクがある場合、2番目の回答の関数は正常に機能します。

しかし、私のサイトでは、投稿のタイトルをリンクとして使用していないため、見つかったソリューションは機能しません。リンク部分の検出をスキップするために、新しい preg-replace パターンを考え出そうとしましたが、取得できませんでした。

基本的に、私はこれが欲しい:

<h2><?php the_title(); ?></h2> or <h2>Converted post title</h2>

...これになる:

<h2><span>Converted</span> post title</h2>
4

3 に答える 3

1

ウッドプレスフックとフィルターを使用してそれを行う最良の方法. 追加のコードなしで the_title() 関数を使用できるようにします。

このコードをテーマ フォルダの functions.php に入れます。それで全部です。

    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 "<span>{$title}</span>";
          }
       }
       return $title;
}
add_filter( 'the_title', 'add_label_to_post_title' );
于 2012-04-22T00:04:14.140 に答える
1

次のようなものを使用できます。

<?php
$title = get_the_title();
if(substr($title,0)>-1){
    $first_word = substr($title,0,strpos($title," "));
    $after_that = substr($title,strpos($title," ")+1);
}else{
    $first_word = $title;
    $after_that = "";
}
echo "<span>".$first_word."</span> " . $after_that;
?>
于 2012-04-21T23:09:17.140 に答える
0

サーバーの処理/CPU使用を減らすことができるように、javascriptでそれを行うことをお勧めします。それでも同じ結果が得られます。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.js" type="text/javascript"></script>

<script type="text/javascript">
    $(function() {
        $('h2.title').each( function (){
            var obj_h2 = $(this);
            var h2_title = obj_h2.html();
            var words = h2_title.split(' ');
            words[0] = '<span>' + words[0] + '</span>'

            obj_h2.html( words.join( ' ' ) );
        } );
    });
</script>

https://gist.github.com/2440296#file_h2_span1stw_2.htm

*以前のコード バージョン.. https://gist.github.com/2440296#file_h2_span1stw.htm http://jsbin.com/uguhel/edit#html,live

于 2012-04-21T23:48:03.563 に答える