KYO

ワードプレスのフィルターフックの基本を理解する

2018年5月25日 ワードプレス ,

ワードプレスでテーマを作っているとフックという言葉を見かけます。

私はよくわからずにスルーしていましたが、勉強したので備忘録的にまとめます。

 

 

ワードプレスで自作テーマを作っていると、この機能のこれが邪魔だな!と思うことがあったりして、知らず知らずのうちにフィルターフックを使っていることがあります。

例えば、記事の概要を出力する時の…が邪魔だなといった時などにもフィルターフックが使われています。

 

フィルターフックとは

ワードプレスをインストールするとわかるのですが、大量のファイルがあります。私たちがテーマを作るときに

wp-contentフォルダの中のthemesフォルダにテーマを作っていきます。
基本的にはこのフォルダ以外を修正したりはしません。

その他のファイルはコアなファイルであり修正したりするのが危険です。

 

しかし、どうしてもコアな機能を編集したい場面があります。

 

そんな時フィルターフックを使えば、コアファイルを修正することなくコアな機能を修正することができます。

 

フィルターフックの簡単な例

先ほども例で出した、記事の抜粋文の表示方法を変更してみましょう。

普通に

<?php< the_excerpt(); ?>

で記事の抜粋文を出力すると […] という文字列が一緒に出力されます。

 

 

テーマによっては、というかこれってもの凄くダサいですよね?

 

 

これを変更したいと思った人は多いはずです。この時に使用するのがフィルターフックです。

 

 

 


function my_excerpt_more($more) {
    return '「この記事を読む!」';
}
add_filter('excerpt_more', 'my_excerpt_more');


 

わかりやすく、「この記事を読む!」というものに書き換えました。

これをfunctions.php に記載すれば、抜粋文を表示した時の挙動が変わります。

 

ここでadd_filterというのが使われていますが、これがフィルターフックと呼ばれるものです。

 

 

add_filter(‘excerpt_more’, ‘my_excerpt_more’);

 

 

ここでのadd_filterは、excerpt_moreというフィルターフック名に、実行させたい関数を登録しています。

 

excerpt_moreが実行されると、my_excerpt_moreが実行されます。

 

フィルターフックの一覧をここで確認できます

 

 

フィルターフックの挙動をもう少し見てみた

次はthe_title()に手を加えてみます。

 



add_filter('the_title','my_the_title');
function my_the_title($title){
  return '変更しました';
}


 

これをfunctions.phpに記載すると、the_title()を使用した時に記事のタイトルではなくて、変更しました という文字列が表示されます。

もともとある機能を完全に変更してしまいました。

 

これはでいけないので以下の変更します。

 

add_filter('the_title','my_the_title');
function my_the_title($title){
  return "記事のタイトルは" . "「" . $title . "」";
}

 

このようにすると

記事のタイトルは「記事のタイトル」

と出力されます。

 

 

本来ある機能に追加することができます。

 

 

簡単ではありますがフィルターフックの基本的な説明を終わりにしたいと思います。

私自身、フックに関してまだまだ学ぶべき点が多いのですが、とりあえずフィルターフックの基本的な流れを説明しました。


関連記事

ワードプレスの設定画面に項目を追加し独自の値を保存する

2018年5月27日

ワードプレスのバージョン 4.6.1です   前回アクションフックについて触れました ワードプレスのアクションフックの基本   アクションフックはワードプレスのコアのコアな部分の設定に手を入れることができる機能でした。 設定画面に項目を追加するにも、アクションフックというものが必須でした     今...

ワードプレスのカスタムウィジェットでSNSシェアリンクを作る方法

2018年5月24日

環境:WordPress 4.6.1   ワードプレスで自作テーマを作っていると、ウィジェットを自作すればもっと開発効率が上がるのにな。と思うことがあると思います。 ワードプレスにはウィジェットエリアという便利な機能があるので、これを使いこなすことは自由度が高く、カスタマイズ力のあるテーマを作ることが可能になります。  ...

ワードプレスでソースコード書くなら Crayon Syntax Highlighter一択

2018年5月30日

プログラム系のブログを書いていると、プログラムのソースコードを表示させたい場面があります。 しかし綺麗にソースコードを書くのは困難です。   ワードプレスでは記事編集モードで、ソースコードを入力しようとすると様々なトラブルが起こります(笑) 例えば、変な位置で改行されたりされなかったり、空白が消えたり、特殊文字に変換されたりと、...

ワードプレスの管理画面に設定項目を追加する

2018年7月16日

今、新しいテーマを作っているのですが、管理画面に値を設定させるフィールドを用意しています。そんなわけで管理画面で独自の値を設定する方法を本投稿で書いていきます。これができると、カスタマイズの幅が広がります。ここはクライアントが入力した値を使いたい!という場面で役に立ちます。 以前も似たような記事を書いたのですが ワードプレスの設定画面に項...

ワードプレス関連の記事

2018年5月14日

関連記事に表示されます。

テーマカスタマイザでカラーコントロールを使って色を指定する

2018年7月27日

ワードプレスの自作テーマを作ってたんですが、テーマカスタマイザというのを最近知りました。 テーマカスタマイザとはヘッダー画像とか設定する「外観」→「カスタマイズ」の部分です。プレビュー見ながらテーマの設定を変更する画面のことです。 これは視覚的にテーマをカスタマイズできるので、初心者でもテーマカスタマイズをしやすくなるというメリットがあり...