WordPress

記事のタイトルから特定の文字列を削除してみる:【13日目】WordPress1日1プラグイン

更新日:

ようこそのお運びで、厚く御礼申し上げます。
13日目です。前回が文字列の追加だったので、削除もしてみたいと思います。

記事のタイトルから特定の文字列を削除してみる

ある記事のページ表示のときに、記事タイトルから特定の文字列を削除してみる。

こちらも用途としてはあまりないかもしれが…削除するのに今回、正規表現を使ってみます。
あとあと、使ったりもするので試してみましょう。

まずは、functions.phpに書いてみます。

では、functions.phpに以下のコードを書きました。

function paka3_TitleDeleteStr($title, $post_ID){
   if(is_single($post_ID) ){
      //例: $title="タイトルだよー:【WordPress1日1プラグイン】";
      //$titleから:【WordPress1日1プラグイン】だけを削除する

      if(preg_match('/:【.*/',$title, $regs)){
		$title =str_replace( $regs[0],"", $title);
       }
   }

   //条件に合わない場合はそのまま返す
   return $title;
  }
 add_filter('the_title','paka3_TitleDeleteStr',10,2);

ポイントはどこ?

  • 引数「$title」は現在表示している記事のタイトルです。
  • 引数「$post_ID」は現在表示している記事のIDです。
  • preg_match$titleから正規表現使って特定の文字列を検索します。
    特定の文字列があれば、 $regsに配列で値が入ります
  • str_replaceで置換をします。
    $titleから$regs[0](抽出した文字列)を空文字に置換します。

           if(preg_match('/:【.*/',$title, $regs)){
    		$title =str_replace( $regs[0],"", $title);
           }
  • add_filter:指定したフィルターフックに、関数をフックします
    add_filter('フックするフィルター名','呼び出す関数名',"10","引数の数")
    今回は引数を2つ使ったので、add_filterの第4引数は”2”とします。
  •  タイトルのフィルター名は「the_title

コードをプラグイン用のファイルにします

それではfunctions.phpに書いたコードを消して、
paka3_TitleDelStr.php」というファイルを作成し、以下のコードを記入します。

このファイルを[wp-content]>「plugins」ディレクトリに入れ、管理画面で有効にして完了です。

今回のまとめ

今回は正規表現を使って削除をしてみましたが、やっぱりなかなか慣れませんね。検索とか置換する場合は正規表現は必須なので、複雑にならない程度に処理を覚えていこうと思います。

-WordPress
-, , ,

Copyright© アルパカ@ラボ , 2019 All Rights Reserved Powered by AFFINGER5.