web-dev-qa-db-ja.com

どのフックでregister_nav_menuを呼び出すべきですか?

私はregister_nav_menus()が呼ばれるのをいろいろ見ました。

  • after_setup_theme
  • initについて
  • functions.phpに "loose"を貼り付けた

機能に明らかな変化はありません。

この関数を呼び出すためにどのフックを使うべきですか?

5
Isaac Lubow

まず、functions.phpに関数looseを登録することはできません。それらを削除することはできないからです(remove_actionを使用)。 WPはまだ安定していない可能性があるため、デバッグエラーも発生する可能性があります。フックを使用することで、WPがコードを実行するのに十分安定していること、および使用する必要があるものがロードされていることを確認できます。

Wordpressフォーラム の詳細については、答えをチェックしてください。


どのフックを使用するかを決めるには、最初に この答えをチェックしてください

両者の主な違いは:

  • ユーザーはafter_setup_themeで認証されていません
  • ユーザーはinitで認証されます。

したがって、after_setup_themeフックは明らかにinitの前に実行されます。これは アクションリファレンス で確認できます。

after_setup_themeのWordpress Codexページによると、

このフックは、テーマが初期化された後、各ページの読み込み中に呼び出されます。一般的には基本的な設定、 registration 、そしてテーマに対するinitアクションを実行するために使われます。


あなたはメニューを登録しているので、私はafter_setup_themeを使うことを勧めます。 register_nav_menu()Wordpress Codex も、例の1つでafter_setup_themeフックを使用しています。

6
Kaspar Lee

あなたはそれらが利用可能になった瞬間、すなわちfunctions.phpがロードされるとすぐにそれらを使うことができます。

フックafter_setup_themeを使う - 私は "事実上の"方法に固執することをお勧めします

1
TheDeadMedic

register_nav_menu のドキュメントでは、after_setup_themeフックを使った例を示しています。

after_setup_theme

このフックは、テーマが初期化された後、各ページの読み込み中に呼び出されます。通常、テーマの基本的な設定、登録、および初期化アクションを実行するために使用されます。

... initフックの前に実行されるafter_setup_themeフック。 initフックは、サポート投稿のサムネイル表示など、一部の機能には遅すぎます。

1
Cai