ダッシュボードのサイドバーメニューに2ページを追加する必要があるプラグインを開発しようとしています。そのうちの1つが主なカテゴリーです。設定ページの2番目のサブメニュー項目を除いて、すべて問題ありません。ほぼ同数のコーデックスを熟読し、同様の問題をWebで検索したところ、解決策は見つかりませんでした。
これで何か足りない? (最初のサブメニューは、もちろん、重複したランディングページを作成することです)
add_action('admin_menu', 'my_add_submenu');
function my_add_submenu(){
add_menu_page( 'Author Discussion', 'Discussion', 'manage_options', 'author_discuss', 'author_discuss_build_page', plugins_url( 'author-discussion/images/icon.png' ), 999 );
add_submenu_page( 'author_discuss', 'Author Discussion', 'Author Discussion', $menu_capability, 'author_discuss' );
add_submenu_page( 'author_discuss', 'Author Discussion Settings', 'Settings', 'manage_options', 'author_discuss_settings', 'author_discuss_settings_page' );
}
function author_discuss_build_page(){
//do something
}
function author_discuss_settings_page() {
//do something
}
私が気付くことの一つは、私がサイドバーの中のリンクをクリックしようとするとき、それはそれにリダイレクトする:
明らかなものが欠けているような気がします。
私はここにある WordPress Codexの最後の例に従いました 。
アクションをadmin_menu
からadmin_init
に変更して、結果が変わるかどうかを確認しました。 URLは期待どおりに印刷され、/ wp-admin/admin.php?page = author_discuss_settingsが表示されますが、「十分な権限がありません」というエラーが表示されます。
コーデックスの同じページに、これがあります。
注:「このページにアクセスするための十分な権限がありません」に遭遇した場合wp_die()画面にメッセージが表示されたら、早すぎます。
だからそれはあなたの質問に部分的に答えます。
第二部、次のコードは動作するはずです。
add_action('admin_menu', 'my_add_submenu');
function my_add_submenu(){
add_menu_page( 'Parent', 'Parent', 'manage_options', 'author_discuss', 'author_parent' );
add_submenu_page( 'author_discuss', 'Author Discussion', 'Author Discussion', 'manage_options', 'author_discuss' );
add_submenu_page( 'author_discuss', 'Author Discussion Settings', 'Settings', 'manage_options', 'author_discuss_settings', 'author_discuss_settings_page' );
}
function author_parent() {
}
function author_discuss_settings_page() {
//do something
}
あなたの機能をチェックして、何らかのタイプミスがあるかどうか確かめてください。