私はafter_setup_theme
を使ってセットアップを含むテーマを持っていますが、after_setup_theme
を実行する必要がある私自身の関数を書きたいと思います。私は自分のものを別のファイルに保存したいと思います。 after_setup_theme
を複数回呼び出すことはできますか?
WordPressフックはハリウッドのように機能します。あなたはそれらを呼び出すのではなく、呼び出します。しかし、ハリウッドとは異なり、彼らはリストの全員を呼び出し続けます。
アクションまたはフィルターが、異なるプラグイン、または単に異なる複数の関数にフックされることは通常です WordPressコア内の関数はすべて特定の何かを行う 。コードがより明確になり(各関数が1つのことだけを行う)、特定の機能の一部をフック解除することで簡単に無効にできるため、可能なだけでなく、優れたプラクティスですらあります。
フックの優先順位で遊ぶこともできます:after_setup_theme
でfunctionA()
とfunctionB()
の両方を実行したいが、functionA()
がfunctionB()
の前に実行する必要がある場合は、functionA()
をデフォルトの優先順位10
とfunctionB()
で優先順位20
(またはその他の10を超える数)。動作しないのは、そのアクションの実行中に別の関数をアクションにフックすることです。そのため、after_setup_theme
で呼び出されるfunctionB()
からfunctionA()
をafter_setup_theme
にフックすることはできません。直接呼び出すこともできますが、別のフックの利点を失うことになります。
あなたがそうするならば、私の提案はあなたの他のすべての機能を呼び出す「マスター」機能を持つことでしょう。そのようにあなたは一度だけその行動に引っ掛かる必要があります。
add_action( 'after_setup_theme', 'master_function' );
function master_function()
{
func_a();
func_b();
func_c();
func_d();
func_e();
}
function func_a(){ /* Do something */}
function func_b(){ /* Do something */}
function func_c(){ /* Do something */}
function func_d(){ /* Do something */}
function func_e(){ /* Do something */}
これには、後続の関数呼び出しで使用できる値を返すことができるという追加の利点があります。
はい、あなたはあなたが望むのと同じくらい多くのアクションをフックに追加することができます。やってみなよ。