2017-04-05 2 views
0

はWordPressでメニューを登録する標準的な方法はのfunctions.phpにこれを追加することで構成されていますregister_nav_menuを直接呼び出すのではなく、「init」にフックする点は何ですか?

function register_menu() { 
    register_nav_menu('main_menu', 'Main Menu'); 
} 
add_action('init', 'register_menu'); 

をしかし、なぜ単に何かを引っ掛けることなく、のfunctions.phpからregister_nav_menu()を呼び出していませんか?

register_nav_menu('main_menu', 'Main Menu'); 

これは問題ありません。

答えて

1

functions.phpが読み込まれた時点では、wordpressはまだ完全に初期化されておらず、必ずしも「安定」であるとは限りません。これはregister_nav_menu()のようなものにとってあまり重要ではありませんが、言及する価値があります。

第2の理由は、remove_action()で「ゆるやかに」宣言されたものを削除できないことです。これは、必ずしも一般的に適用可能であるとは限らないが、多くの場合、はるかに重要である。

あなたや他の誰かがあなたが今開発しているテーマに基づいて子テーマを作成していることを考慮してください。子テーマがテーマをメニューを宣言するのを止める良い方法はありません。これは1つの例にすぎず、別のコンポーネントが何かをやめることを止めることが重要な場合があるという他の例があります。

これらの問題は、最初にテーマを作成したときには特に関係しないようですが、時間が経つにつれて、この種のベストプラクティスの問題がメンテナンスの実際の頭痛になります。

関連する問題