プラグインなしでプログラムでWordPress管理メニュー項目を削除する方法

公開: 2020-01-20

プログラムでWordPress管理メニュー項目を削除する方法 WordPressダッシュボードメニューは、管理ダッシュボードのさまざまなセクションを回避するための非常に便利な方法ですが、迷惑または不要な場合があります。 特に、ブログとは対照的に、クライアントWebサイトを作成するためのコンテンツ管理システムとしてWordPressを使用している場合は、不要なWordPress管理メニュー項目を削除する必要があります。

WordPressの管理メニュー項目を削除する最も簡単な方法の1つは、ユーザーの役割ごとに、または条件付きで管理メニュー項目を非表示にできる、無料で入手できるプラグインを使用することです。

プラグインを使用してWordPress管理メニュー項目を削除しない場合

プラグインを使用してWordPress管理メニュー項目を削除することの欠点は、一貫した更新をサードパーティのプラグイン開発者に過度に依存している可能性があることです。

サードパーティのプラグインのリスク

この場合、プラグインを使用せずにWordPressダッシュボードに表示されるメニューを制御したい場合は、このチュートリアルが最適なガイドです。

絶え間ない更新

プログラムでWordPress管理メニュー項目を削除するもう1つの理由は、インストールするすべてのWordPressプラグインで定期的に更新されることです。

これらの更新は、ユーザーエクスペリエンス、パフォーマンス、およびセキュリティを向上させるため重要ですが、特に多数のクライアントのWebサイトを処理している場合は、煩雑になる可能性があります。

いくつかのプラグイン管理メニュー

サイトに非常に多くのプラグインがインストールされている場合、ほとんどの場合、管理メニューが付属しています。管理メニューを常に使用しているわけではないため、メニューを削除することをお勧めします。

この投稿では、プラグインを使用せずにWordPressメニュー項目を削除する方法を説明します。 これをWordPressサイトに実装するには、WordPressサイトの編集、特にfunctions.phpテーマファイルへのコードスニペットの追加の経験が少し必要です。

プログラムでWordPress管理メニュー項目を削除する

ステップバイステップガイドで簡単な解決策を探している読者にとって簡単になるので、簡単な要約から始めるのが好きです。 以下は、WordPress管理メニュー項目を削除するために実行する必要がある手順です。

  1. WordPressサイトにログインし、削除する管理メニュー項目を特定します
  2. ダッシュボードからWordPress管理メニューを削除するロジックを持つコールバック関数を使用してadmin_menuイベントをフックするアクションフックを作成します。
  3. コールバック関数は、 remove_menu_pageまたはremove_submenu_page()WordPress関数を使用して、対象となる各管理メニュー項目を削除する必要があります。 たとえば、次のコードを使用して、テーマメニューからウィジェットメニューを削除できますremove_submenu_page( 'themes.php', 'widgets.php'); または、このコードでダッシュボードのメインメニューを削除します– remove_menu_page('index.php');
  4. または、 unset() php関数を使用し、グローバルサブメニュー配列の値にアクセスして、対象となる各WordPress管理メニュー項目を削除することもできます。
  5. このコードスニペットをテーマfunctions.phpに追加し、変更を更新します。 これにより、プラグインを使用せずにWordPress管理メニュー項目が正常に削除されます。
  6. このコードをカスタムプラグインの関数に追加することもでき、テーマのfunctions.phpで機能するように機能します。

プラグインなしでWordPress管理メニューを削除する方法

以下は、別のプラグインを使用する代わりにコードを追加してWordPress管理メニュー項目を削除するための詳細なステップバイステップのアプローチです。

管理メニュー項目スラッグを特定する

WordPressダッシュボードにログインし、削除する管理メニュー項目を確認します。 この例でわかるように、メインダッシュボードメニューにはスラッグindex.phpがあります。

このスラッグは、後で説明するように、remove_submenu_page()関数に追加するパラメーターの1つであるため、重要です。

WordPressの管理メニューを削除する

ページを削除する方法とサブメニューページの機能を削除する方法を理解する

ページ機能の削除

remove_menu_page関数には、ページスラッグという1つのパラメーターのみが付属しており、最上位の管理メニューを削除します。 明らかに文字列であるのはページスラッグであり、一般的なコードは次のようになるため、パラメータは文字列です。

 remove_menu_page(string; $ menu_slug;)

サブページ機能の削除

remove_submenu_page関数には、サブメニューを削除するときの親メニューのスラッグである最初のパラメーターと、削除するサブメニューのスラッグの2番目のパラメーターの2つのパラメーターが付属しています。 一般的なコードは次のようになります。

 remove_submenu_page(string $ menu_slug、string $ submenu_slug)

管理メニューやサブメニュー項目を削除するためのアクションフックを作成する

以下は、 admin_menuイベントをフックし、「 remove_admin_menu_items」という名前のコールバック関数を持つアクションフックの例です。

 add_action( 'admin_menu'、 'remove_admin_menu_items'、999);

remove_submenu_pageおよびremove_menu_page()を使用して、管理メニューまたはサブメニュー項目を削除するコールバック関数を作成します。

まず、コールバック関数で、 unset()関数を使用する場合は、グローバル$ submenu変数を含むグローバルメニュー配列を取得する必要があります。

次に、以下のコードに示すように、削除するページを対象とするremove_submenu_pageまたはremove_menu_page()関数を追加します。

 関数remove_admin_menu_items(){        

    remove_submenu_page( 'menu_slug'、 'submenu_slug'); 

}

または、unsetを使用すると、次のコールバック関数を使用できます

関数remove_admin_menu_items(){

        グローバル$サブメニュー; 

       unset($ submenu ['parent menu slug'] [admin item submenu array index]);

 }

アップデートの削除方法の例管理メニュー項目

WordPressダッシュボードにログインすると、下の画像に示すように、メインダッシュボードメニューの下に更新に関するメニュー項目があります。

WordPressの管理メニューを削除する

上記の方法を使用して、この管理メニュー項目を削除する方法を説明します。 まず、親メニューのスラッグはindex.phpであり、更新メニューのスラッグはupdate-core.phpです。

WordPress管理メニュー項目の親とサブメニューを削除します

したがって、次のようにremove_menu_page()関数を使用して、メニュー項目全体を削除するアクションフックおよびコールバック関数を作成できます。

 //メインメニュー項目をサブページ/ submenusと一緒に削除します

add_action( 'admin_menu'、 'remove_admin_menu_items'、999);

 関数remove_admin_menu_items(){

    remove_menu_page( 'index.php');


 }

これにより、下の画像に示すように、メニュー全体とサブメニューが削除されます。

WordPressサブメニュー項目のみを削除

WordPressサブメニュー項目のみを削除

次のように、 remove_submenu_page関数を使用して、サブメニュー項目を削除するアクションフックおよびコールバック関数を作成できます。

 //サブページまたはサブメニューを削除します

add_action( 'admin_menu'、 'remove_admin_menu_items'、999);

関数remove_admin_menu_items(){

    remove_submenu_page( 'index.php'、 'update-core.php');

}

これにより、remove_submenu_page関数の2番目のパラメーターで指定されたサブメニューが削除されます。この場合は「 update-core.php」と指定し、結果は次の図のようになります。

Unset()PHP関数の使用

PHPのunset関数を使用してサブメニュー項目を削除することもできます。この場合、以下のコードに示すように、最初にグローバル$ submenu配列にアクセスする必要があります。

 //アクションフックをadmin_menuイベントに追加します

add_action( 'admin_menu'、 'remove_admin_menu_items'、999);

//コールバック関数
関数remove_admin_menu_items(){

    //管理メニュー配列->すべてのWordPress管理メニュー項目のリストはこの配列にあります
    グローバル$サブメニュー;

    //配列を画面に出力して、インデックスで管理メニュー項目を表示できるようにします
    
     print( '<pre>');
     print_r($ submenu);
     print( '<pre>');

      //画面に表示されている他のすべてを削除して、管理メニュー項目の配列のみを表示します
      die();

}

このコードはグローバルサブメニュー配列を取得し、それを印刷してすべてのメニューの配列を表示します。これにより、各管理メニュー項目のインデックスを選択し、必要に応じてそれらを削除できます。

このコードでは、 preタグdie()関数を使用して、コードを読みやすい形式で表示していることがわかります。

Unset()PHP関数wordpressの使用

Unsetを使用してWordPressサブメニューメニュー項目を削除します

したがって、 update-coreサブメニューの配列インデックスは10です。 したがって、次のようにunset()関数を使用できます。

 // unsetを使用して、メインメニュー項目とサブページを削除します

add_action( 'admin_menu'、 'remove_admin_menu_items'、999);

関数remove_admin_menu_items(){

    グローバル$サブメニュー;

       unset($ submenu ['index.php'] [0]); //トップレベルメニューindex.phpを削除します(ダッシュボードメニュー-ホームメニュー)
      unset($ submenu ['index.php'] [10]); //サブメニューupdate-core.php(更新メニュー)を削除します


}

結果は、remove_submenu_pageWordPress関数を使用した場合と同じになります。

Unsetを使用してWordPress管理メニュー項目を削除します

これらの各ページを対象とするunset関数を使用して、トップレベルページとサブメニューをすべて一緒に削除することもできます。

Unsetを使用してWordPress管理メニュー項目を削除します

コードは次のようになります。

 //。 unsetを使用してメインサブメニュー項目を削除します

add_action( 'admin_menu'、 'remove_admin_menu_items'、999);

関数remove_admin_menu_items(){

   グローバル$サブメニュー;

   unset($ submenu ['index.php'] [10]);


}

その結果、コードで設定を解除したため、いずれかのページが削除されます。

プラグインなしでプログラムでWordPress管理メニュー項目を削除する方法

まとめ

この投稿では、WordPress管理メニュー項目を削除するために使用できる2つの主な方法と、WordPressダッシュボードをクリーンアップする方法について詳しく説明しました。 WordPress開発者の場合は、このコードを再利用してコピーすることができ、私の要点を簡単にチェックアウトできます。また、GitHubで私をフォローして、今後の更新を確認できます。 ここでは、他のいくつかのスニペット( WP-Snippets)も共有しました。 メニューから不要なWordPress管理アイテムを削除できるようになったことを願っています。