Genesis フレームワーク をカスタマイズする上で大事になるのが、アクションフックというものです。
Genesisでは、よく使うフックから、このフックって使い道あるの?というものまで色々と用意されています。ちょっとしたカスタマイズなら必要無いかもしれませんが、がっつりGenesisサイトをカスタマイズするときに、アクションフックは大活躍します。
今回は、そんなアクションフックについて紹介したいと思います。
① アクションフックとは
アクションフックは指定した場所にコードを追加するような機能です。
下の表のように、Genesisが用意したアクションフックにadd_action()
やremove_action()
を使って、コードを追加したり、逆にコードを無効化することができます。
関数 | 説明 |
---|---|
add_action(○, ×) | ○の場所に×のコードを追加する |
remove_action(○, ×) | ○の場所で実行されるBのコードを無効にする |
※ remove_action()
にはremoveという単語が入っていますが、フックにかかっているコード自体を永久に削除するような危険な処理ではなく、もっと気軽に無効にする(コメントアウトする)ようなイメージです。
また、Genesisアクションフックは、Genesis親テーマに書かれているので、アクションフックは基本的にどのGenesis子テーマでも同じように使うことができます(Genesis子テーマによっては、その子テーマ専用のフックもあります)。
② アクションフックの使い方
下は Modern Studio Pro というGenesis子テーマに書かれているコードの一部です。
remove_action( 'genesis_after_header', 'genesis_do_nav' );
add_action( 'ms_menus', 'genesis_do_nav' );
上のコードを1行ずつ見てみると、下の表のようになります。
remove_action( ‘genesis_after_header’, ‘genesis_do_nav’ );
コード | 説明 |
---|---|
genesis_after_header | genesis_after_headerの場所に下のコードを追加 |
genesis_do_nav | 追加する関数(指定した位置にナビゲーションメニューを表示) |
上のコードでは、親テーマで genesis_after_header
の位置に表示されていたナビゲーションメニューを非表示にしています。
add_action( ‘ms_menus’, ‘genesis_do_nav’ );
コード | 説明 |
---|---|
ms_menus | ms_menusの場所に下のコードを追加 |
genesis_do_nav | 追加する関数(指定した位置にナビゲーションメニューを表示) |
そして、ms_menus
という位置に add_action()
で genesis_do_nav
という関数を通してナビゲーションメニューを表示しています。
③ アクションフックを使うときに便利なプラグイン
アクションフックを使うときに無くてはならないと言っても過言ではないのが、『Genesis Visual Hook Guide』というGenesis専用プラグインです。
https://ja.wordpress.org/plugins/genesis-visual-hook-guide/
下の画像のように、Genesisで用意されているアクションフックをフック名と一緒に表示してくれます。これを見ても、まさに至るところにフックを設置してあるのが分かります。