本章で説明するのは、以下の付帯事項です。
WordPress には、標準の処理を変更するための機能が用意されています。標準の処理を変更するためには、アクションフックやフィルターフックを使用することで標準の処理を変更することができます。
アクションフックとフィルターフックは、似たような機能ですが用途が異なります。アクションフックは、イベント発生時の処理を登録するのに対してフィルターフックは、データを加工する処理を登録します。
アクションフックは、特定のイベントが発生した時の処理を指定します。例えば、ページが読み込まれる時やユーザーがログインを行った時などです。
add_action 関数は、アクションフックの登録を行います。
add_action( $hook_name, $callback, $priority, $accepted_args )
テーマやプラグインが読み込まれた後にカスタム投稿タイプやカスタムタクソノミーを登録する場合、init アクションフックを使用します。
function custom_post_type_setup( ) {
// カスタム投稿タイプを登録するコード
}
add_action( 'init', 'custom_post_type_setup' );
ダッシュボードにカスタム設定ページを追加する場合は、admin_menu アクションフックを使用します。
function my_custom_menu_page( ) {
add_menu_page(
'カスタム設定',
'カスタム設定',
'manage_options',
'custom-settings-page',
'my_custom_settings_page_html', // この関数内で HTML を出力
'',
20
);
}
add_action( 'admin_menu', 'my_custom_menu_page' );
$return = remove_action( $hook_name, $callback, $priority, $accepted_args )
WordPress には、標準の処理を変更するための機能が用意されています。標準の処理を変更するためには、アクションフック(add_action 関数)やフィルターフック(add_filter 関数)を使用することで標準の処理を変更することができます。
アクションフックとフィルターフックは、似たような機能ですが用途が異なります。アクションフックは、イベント発生時の処理を登録するのに対してフィルターフックは、データを加工する処理を登録します。
フィルターフック(add_filter 関数)は、データを加工する時の処理を指定します。例えば、投稿コンテンツを表示する前に加工したりサイトのタイトルを動的に変更したりする場合などです。
add_filter 関数は、フィルターフックの登録を行います。
add_filter( $hook_name, $callback, $priority, $accepted_args )
投稿の内容に特定のテキストを追加したい場合、the_content フィルターフックを使用します。
function add_signature_to_posts( $content ) {
$signature = 'ありがとうございました!
';
return $content . $signature;
}
add_filter( 'the_content', 'add_signature_to_posts' );
サイトのタイトルを動的に変更する場合は、wp_title フィルターフックを使用します。
function modify_wp_title( $title, $sep ) {
$title .= ' - カスタムテキストを追加';
return $title;
}
add_filter( 'wp_title', 'modify_wp_title', 10, 2 );
$return = remove_filter( $hook_name, $callback, $priority, $accepted_args )
ショートコードとは、投稿や固定ページの中にパーツを埋め込むことができる機能です。ページ内に [ショートコード名] と記述することで登録されているショートコード処理が呼び出され処理内で生成されたコートが埋め込まれます。複数の箇所で使用するパーツや動的に生成したいパーツなどをショートコードとして登録しておくことでページを容易に作成することができます。
ショートコード処理は、add_shortcode 関数を用いて登録します。
add_shortcode( $tag, $callback )
コールバック関数は、以下のインタフェースで作成します。
function my_shortcode_func( $attr, $content, $tag ) { ... }
コールバック関数およびショートコードの登録例は、以下の通りです。
function my_shortcode_func( $atts, $content, $tag ) {
/* ショートコードの処理 */
rerutn '...'; // ... は作成したコード(出力する文字列)
}
add_shortcode('my_shortcode', 'my_shortcode_func');
ショートコード処理は、remove_shortcode 関数を用いて削除します。
remove_shortcode( $tag )
ショートコードショートコードを呼び出す時は、WordPress のエディタで次の記述を行います。
[my_shortcode] // 自己完結ショートコード
[my_shortcode arg="..."] // 属性付きの自己完結ショートコード
[my_shortcode arg1="..." arg2="..."] // 複数の属性付きの自己完結ショートコード
[my_shortcode]コンテンツ[/my_shortcode] // 囲みショートコード
[my_shortcode arg="..."]コンテンツ[/my_shortcode] // 属性付き囲みショートコード
ブロックエディタを使用している場合は、ショートコードブロックを使用してショートコードの呼出しを行うことも可能です。
PHP コードからショートコードを呼び出す場合は、do_shortcode 関数を使用します。ヘッダーやフッターの共通テンプレート内でショートコードを使用したい場合などで有用です。
do_shortcode( $content )
WordPress には、標準で以下のショートコードが登録されています。但し、標準のショートコードが使えるかはテーマに依存します。また、ブロックエディタ(Gutenberg)には標準のショートコードに対応するブロックも用意されていますので、対象のブロックを使用しても同様のコンテンツを作成することができます。
[caption]
キャプション[/caption]
以下の属性が使用可能です。
[audio src="パス/ファイル名.wav"]
以下の属性が使用可能です。
[video src="パス/ファイル名.mp4"]
以下の属性が使用可能です。
[playlist ids="3239,3237"]
以下の属性が使用可能です。
[embed width="200px"]https://www.youtube.com/watch?v=2FM9nJUlwEQ[/embed]
以下の属性が使用可能です。
[gallery ids="5989,5990,5991"]
以下の属性が使用可能です。