WordPressカスタマイズの必須知識!フックについて理解しよう

WordPressカスタマイズの必須知識!フックについて理解しよう

CMSの中でも人気のWordPress。数多くのテーマ(テンプレート)やプラグインがありますが、デザインや機能にこだわるのであればカスタマイズが必要です。

WordPressのテーマやプラグインをカスタマイズするには、特有のテンプレート構造や記述について理解しておくことが必要になってきます。その中でもキーになるのが、フックと呼ばれる機能です。

本記事では、WordPressをカスタマイズするときに必要になるフックの基礎知識について解説していければと思います。フックの基本や、簡単な使い方についてもご紹介していきます。

フックの基礎知識

フックとは?

フックとは、WordPressにはじめから備わっている機能の一つです。フィルターフックとアクションフックに分けられます。記事の後半では、それぞれの使い方を順に解説していきます。

それでは、フックについて簡単に解説しましょう。フックとは、任意のタイミングで指定した処理(関数)を実行するための機能のことです。任意のタイミングとは、記事を公開したり、タイトルを表示した時のこと。処理とは、データベースを変更したり、メールを送信するなどの機能のこと。つまり、フックを使うと自由なタイミングで指定した処理を実行できるのです。

サイトの機能だけでなく、デザイン面でも思い通りに作れるようになるため、WordPressテーマやプラグインのカスタマイズをするのであればぜひ使いこなしたい機能と言えます。

フックの使い方

さて、ここからが本題です。フックの使い方について見ていきましょう。フックには2種類あると言いました。フィルターフックとアクションフックの2つです。順に解説していきます。

フィルターフック

フィルターフックを使うには、add_filter関数を使います。パラメータを含めると、下のようになります。

add_filter( $tag, $function_to_add, $priority, $accepted_args );

指定したフィルターフックに対して、任意の関数を指定します。詳細は、下記の公式ページをご確認ください。

http://wpdocs.osdn.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/add_filter

add_filterの逆で、remove_filterもあります。これを使うと、指定したフィルターフックを取り消すことができます。

フィルターフックの具体例

moreタグのリンクを修正する

moreタグを使うと、リンクの末尾に「#more-3」などの文字列が付加されます。これを削除する方法です。


function customize_more_link( $output ) {
$output = preg_replace('/#more-[\d]+/i', '', $output );
return $output;
}
add_filter( 'the_content_more_link', 'customize_more_link' );

記事本文にpタグがつかないようにする

記事本文に自動的に付加されるタグ(pタグ)を削除する方法です。HTMLタグを自分でコントロールしたい場合に使えます。


remove_filter( ‘the_content’, ‘wpautop’ );

アクションフック

次は、アクションフックです。アクションフックの場合も、基本的にはフィルターフックと同様です。add_action関数を使って、下のように記述します。

add_action( $hook, $function_to_add, $priority, $accepted_args );

アクションフックと、その時に実行する関数を指定します。下記、公式ページによる詳細です。

http://wpdocs.osdn.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/add_action

add_actionも、アクションフックを取り除くremove_action関数が用意されています。

アクションフックの具体例

管理画面にメニューを追加する

管理画面の左側には、「投稿」や「外観」などのメニューが表示されています。アクションフックを使うと、この部分に新規にメニューを追加することができます。例えば、functions.phpに下記のコードを書くと「設定」内に新しいサブメニューが追加できます。


add_action ('admin_menu','my_options_menu');
function my_options_menu(){
add_options_page('メニューページのタイトル', 'メニューの名前', , 'my-options-menu', 'new_menu_page');
}
function new_menu_page() {
echo '

‘;
echo ‘

設定画面に表示する内容を書く

‘;
echo ‘

‘;
}

WordPressのバージョン情報を削除する

WordPressのheadタグ内から、バージョン情報を削除する方法です。表示する意味も特にありませんので、基本的には消してしまった方がよいです。


remove_action('wp_head','wp_generator');

あとがき

フックをうまく使って、WordPressのカスタマイズに活かしていっていただければと思います。なおWordPress Codexには、フィルターフックやアクションフックの一覧もあります。どういったことができるのか、一度目を通しておくといいかもしれません。

中西洋平

中西洋平Web屋さん兼IT記事ライター

投稿者プロフィール

ピンとくるウェブサービスやガジェットを探すのが趣味です。どうぞよろしく。

この著者の最新の記事

関連記事

Follow me on

Facebookの投稿

弊社を手伝ってくれている Yuya Sato に、
オフィス制作時の360度タイムラプス撮影したものを編集してアップしてもらいました!

何にもないところからオフィスができていくのが面白いです!!!
www.youtube.com/watch?v=YFRvF_qot3o
... See MoreSee Less

View on Facebook

2016年7月、オフィス移転しまして、オフィスを手作りしました! ... See MoreSee Less

View on Facebook

Luxyでは毎月1回、Luxyメンバーで大江戸温泉ミーティンをすることになりました!
今回は第一回目のミーティング。

みんなでお風呂入って、飲んで笑って…たまにミーティングして(笑)
とても良い時間を過ごせました!
... See MoreSee Less

View on Facebook
ページ上部へ戻る