WordPress add_filter理解

Last Updated: 2015 年 11 月 19 日 댓글

WordPressでadd_filter関数を特定のフィルタアクションにフックする役割をします(WordPress Codexページ を参照)。 add_filterは、次のように使用されます。

<?php add_filter( $tag, $callback_function, $priority, $accepted_args ); ?>
  • $ tagはフックするフィルタの名前です。
  • $ callback_functionは、文字通りカスタマイズされたフィルタが適用されるときに呼び出さ(call)される関数の名前です。
  • $ priorityはオプションで、特定のアクションに関連する関数が実行される順序(優先順位)を指定するために使用されます。 デフォルト値は10で、通常10に設定したり、省略することができます。
  • $ accepted_argsは関数に使用される引数(argument)の数です。

上記の内容は WordPress Codexページで説明された内容です。 WordPressを初めて接したり、プログラム言語をよく知らない初心者が理解するには容易ではない内容です。 だから、簡単な例を使って、実際にどのように動作するかを見てみましょう。

次のような簡単な関数を一度考えてみましょう。

function return_hello() {
    $text = 'Hello World';
    return $text;
}

この場合は、直接関数を修正しないと、出力内容を変えることができません。 これは少し修正してフィルタを適用してみると:

function return_hello() {
    $text = 'Hello World';
    $text = apply_filters( 'output_hello_filter', $text );
    return $text;
}

この関数も「Hello World」を出力する関数ですが、必要に応じてフィルタ「output_hello_filter」を使用してテーマ(または子テーマ)で追加の作業を行うことができます。 たとえば、次のようにadd_filterを使用して他のコンテンツを出力できるようにすることができます。

function new_hello_filter( $text ) {
    $text = 'How are you?';
    return $text;
}
add_filter( 'output_hello_filter', 'new_hello_filter' );

return_hello() 関数は、「Hello World」ではなく「How are you?」を出力します。

簡単に理解ザラザラその名の通りadd_filter(フィルタの追加)を介してフィルタを指定し、指定されたフィルタがapply_filters(フィルタの適用)を介して適用されると考えるとなると思われる。

フィルタが使用されているかどうかは、ソースからapply_filtersを検索して確認することができます。
apply_filters in WordPress

フィルタを使用すると、テーマやプラグインのソースを変更せずにテーマ関数ファイルにadd_filterを介して必要に応じて変更することができます。 そして、この場合、テーマやプラグインが更新されても煩わしくソースを再変更する必要がなくなります。

メモ:


コメントを残す

コメント