wordpressにおけるフック

wordpressでプラグインを自分で実装する際に必要となる”フック”という概念について紹介したいと思います。

フックとはそもそも”fook”です。引っ掛けるフックです。これがフックの機能そのもののイメージとなっています。

ある処理が行われるときにその処理に引っ掛けるように別の処理を行うことが出来ます、これが”フック”です。

フックには二種類あります。

1,アクションフック

wordpressがある処理を行うときにその処理と同時にフックした処理も行われる。

2,フィルターフック

wordpressがあるデータのやりとりをするとそのデータのやりとりにフックした処理がそのデータに対して処理を行う。

若干わかりづらいので参考までに具体例をあげます。以下のコードは

http://www.slideshare.net/yuka2py/wordpress-15359306 で紹介されているもので

投稿した文章の”。”を顔文字に変えてしまうものです。

add_filter('the_content','moji_changer_content_filter');

function moji_changer_content_filter($content){
    return str_replace('。','(~_~)',$content);
}

add_filterという関数でフィルターを定義します。

第一引数がフックされるデータです。第二引数がフックされた際に呼び出される関数です。

その下に実際に文章の”。”を顔文字に変える処理が書かれています。

最後に、フック機能の何が優れているかということですがこれはwordpressのコアとなっている部分のコードを触らないで、自分の追加したい機能、処理を追加できるというところです。やはりシステムの根幹となるところを触るのは怖いので手軽に機能追加できるのはありがたいです。