#背景のサイドバーのトップ メニューをカスタマイズする
まず、サイドバーとは何かを見てみましょう。背景のサイドバー メニュー:メニューは必要ありません。ビジネスユーザーが見ると混乱します。したがって、最善の方法は、実際の状況に応じて、存在しないはずのサイドバー管理メニューを削除することです。具体的な実装方法は、現在のテーマの function.php の最初の
function remove_menus() { global $menu; $restricted = array(__('Dashboard'), __('Posts'), __('Media'), __('Links'), __('Pages'), __('Appearance'), __('Tools'), __('Users'), __('Settings'), __('Comments'), __('Plugins')); end ($menu); while (prev($menu)){ $value = explode(' ',$menu[key($menu)][0]); if(strpos($value[0], '<') === FALSE) { if(in_array($value[0] != NULL ? $value[0]:"" , $restricted)){ unset($menu[key($menu)]); } } else { $value2 = explode('<', $value[0]); if(in_array($value2[0] != NULL ? $value2[0]:"" , $restricted)){ unset($menu[key($menu)]); } } } } if ( is_admin() ) { // 删除左侧菜单 add_action('admin_menu', 'remove_menus'); }
上記のコードのコア部分は関数remove_menus()で、このremove_menus関数はWordPressアクションインターフェース関数add_actionを通じて実行されます。 Remove_menus 関数では、$restricted 配列を使用して、どのメニュー項目を削除する必要があるかを定義します。上記の $restricted 配列は、すべてのメニュー項目を提供します。つまり、上記のコードをすべて変更せずに function.php にコピーすると、バックグラウンドにメニューはありません。実際のニーズに応じてメニューを削除する必要があります。各 $restricted 配列項目に対応するメニューについて話しましょう:
__('Dashboard') : コントロール パネル メニュー- __('投稿') : 記事 ##__('メディア') : メディア
- ##__('リンク') : リンク
- __('ページ') : ページ
- __('コメント') : コメント
- __('外観') : 外観
- __('プラグイン') : プラグイン
- __('ユーザー') : ユーザー
- __('ツール') : ツール
- __('設定') : 設定 たとえば、
- Comments と
メニューを削除したい場合は、上記のコードの 3 行目の $restricted 配列を書き換えるだけで済みます。 $restricted = array(__('Comments'), __('Tools'));
remove_submenu_page( $menu_slug, $submenu_slug )
、ここには 2 つのパラメータがあります、$menu_slug はトップレベル メニューの略称ですサブメニューが配置されている場所、 $submenu_slug は submenu の略語です。では、これら 2 つの略語を取得するにはどうすればよいでしょうか?たとえば、トップレベルのメニューSettingsをクリックすると、リンクアドレスは次のようになります: http://example/wp-admin/options-general.php
次に、トップレベルのメニューSettings の省略形は options-general.php で、これは http://example/wp-admin/ などを削除した後に残るもので、トップ メニューをクリックします
設定
プライバシー、次のURLが開きます: http://example/wp-admin/options-privacy.php 次に、サブメニューの省略形 Privacy options-privacy.php については、非常に簡単です。実装コードは次のとおりです:
function remove_submenu() { // 删除"设置"下面的子菜单"隐私" remove_submenu_page( 'options-general.php', 'options-privacy.php' ); // 删除"外观"下面的子菜单"编辑" remove_submenu_page( 'themes.php', 'theme-editor.php' ); } if ( is_admin() ) { add_action('admin_init','remove_submenu'); }
メニュー ベースの削除on user role
ユーザーロールごとに対応するサイドバーメニューを削除したい場合は、ユーザーレベルで再度判定を行うだけで、11行目のadd_actionに判定を追加して次のように書き換えます。