Codexには次のほとんどが含まれています。
apply_filters
フィルターフックにアタッチされたコールバック関数$tag
は、この関数を呼び出すことで呼び出されます。この関数を使用して、$ tagパラメーターを使用して指定された新しいフックの名前でこの関数を呼び出すだけで、新しいフィルターフックを作成できます。
$value = apply_filters( $tag, $value, $var_1, $var_2, ... );
本質的に:
使用apply_filters
するフィルタ所与$value
-値そのものに対してだけでなく、必要に応じて設けられた変数を$var_1
介して$var_n
。
add_filter
特定のフィルターアクションに関数をフックします。
add_filter( $tag, $function_to_add, $priority, $accepted_args );
本質的に、カスタム関数を、以前に生成した可能性のある特定のフィルターアクション()にフック
するために使用add_filter
し$tag
ますapply_filters
(または、組み込みのフィルターアクションであるか、プラグイン/テーマに由来します)。
だから、ここに
架空の例があります:
function print_initials( $name ) {
if ( ! is_string( $name ) ) {
return;
}
$fragments = explode( ' ', $name );
/**
* Filter wether to print initials in reverse order.
*
* @param bool $reverse Print initials in reverse order?
*/
if ( apply_filters( 'reverse_initials', FALSE ) ) {
$fragments = array_reverse( $fragments );
}
foreach ( $fragments as $f ) {
echo substr( $f, 0, 1 );
}
}
print_initials( 'Some Guy' ); // outputs: SG
add_filter( 'reverse_initials', '__return_true' );
print_initials( 'Some Guy' ); // outputs: GS
さて、関数をそのまま呼び出すと、イニシャルが左から右に出力されます。これがデフォルトの動作として定義されているからです。
2回目は、イニシャルを逆順で取得します__return_true
。これは、フィルターアクションにフックされているフィルター関数が常に戻るTRUE
ため、イニシャルが右から左に出力されるためです。