WP はクロージャーをコールバックとして受け入れないため (少なくとも、確かに ではありませんadd_filter()
)、短い答えは「できません」です。少なくとも、きちんとした方法ではありません。
ここには、何をしているかに応じて、いくつかのオプションがあります。最初のものが最適ですが、使用できない場合があります。
関数を呼び出すラッパー関数を作成します。
function gr_wp_list_pages_excludes_1 ($exclude_array) {
$custom_arg = 'whatever';
gr_wp_list_pages_excludes_1($exclude_array, $custom_arg)
}
これは、特定の状況で常に同じカスタム引数を渡す場合にのみ機能します。異なる状況ごとにこれらのラッパー関数のいずれかを記述し、ラッパー関数の名前を に渡しますadd_filter()
。または、本当に動的にしたい場合は、次のことが必要になります...
グローバル変数を使用します: (参照:変数のスコープ, )$GLOBALS
function gr_wp_list_pages_excludes($exclude_array) {
global $gr_wp_list_pages_excludes_custom_arg;
$id_array=$array('22');
$exclude_array=array_merge($id_array, $exclude_array);
return $exclude_array;
}
$gr_wp_list_pages_excludes_custom_arg
このアプローチを使用すると、グローバル スコープで割り当てることにより、任意のデータを関数に渡すことができます。これは、コードが乱雑で判読不能になり、メモリ空間に余分な変数が散らばったままになるため、一般的に悪い習慣と見なされ、ひどく眉をひそめられます。衝突を避けるために、変数名を非常に長く関数に固有のものにしたことに注意してください。これは、グローバル変数を使用する際の別の問題です。これは機能しますが、絶対に必要な場合にのみ使用してください。