質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

受付中

管理メニューに管理者、編集者権限のみ特定のプラグインを表示したい

akkkkin
akkkkin

総合スコア83

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

1回答

0評価

0クリップ

8510閲覧

投稿2017/04/28 08:46

編集2022/01/12 10:55

管理者権限と編集者権限のみ任意のプラグイン(woo cartpro)を表示させたいのですが、
functions.phpに以下の記述をしても管理者だけにしか表示されない、
また、別途カートアイコンという名前で新たにサイドメニューに表示されます。

add_action( 'admin_menu', 'register_my_custom_menu_page' ); function register_my_custom_menu_page() { if (current_user_can('administrator','editor')) { //管理者、編集者以外はwoocart項目を非表示 add_menu_page( 'custom menu title', 'カートアイコン', 'manage_options', 'admin.php?page=festi-cart', '', plugins_url( 'plugins/woocommerce-woocartpro/static/images/icon_16x16.png' ), 6 ); }}

以下のプラグインを管理者、編集者だけ表示させたい。(スラッグ名:festi-cart)
イメージ説明

しかし、追加のメニューとして管理画面サイドバー上部にカートアイコンと表示されてしまう。

イメージ説明

「adminimize」「manege menus」のプラグインで編集者権限でログイン時、任意のプラグインの表示を設定しても、
表示されないので、今回直接function.phpに記述しようと試みた、という背景です。

その他権限をごとに設定するプラグインとして、「user role editor」も入れています。
このプラグインに関してはそもそも設定したいプラグインの項目が見当たらなかったので、
特になにも設定していません。

つきましてはどのようにfunctions.phpに記述すれば、編集者権限時に管理画面サイドバーに
任意のプラグインが表示されるのでしょうか?

もし、詳しい方がいらっしゃればご教示いただきたく思います。

【追記】

function remove_menus () { if (!current_user_can('administrator') && !current_user_can('editor')) { //管理者ではない かつ 編集者ではない場合 remove_menu_page('festi-cart'); } } add_action('admin_menu', 'remove_menus');

を記述すると、エラーが表示されます。具体的なエラー箇所のコードは下記です。

if (!current_user_can('administrator')){ //管理者以外がログインした場合は以下の表示を非表示 function remove_menus(){ remove_submenu_page('themes.php', 'themes.php'); // テーマ remove_menu_page('edit-comments.php'); // コメント remove_menu_page('tools.php'); //ツール remove_submenu_page('edit.php', 'edit-tags.php?taxonomy=post_tag'); // 投稿 -> タグ remove_submenu_page('themes.php', 'widgets.php'); // 外観 -> ウィジェット remove_submenu_page('themes.php', 'nav-menus.php'); // 外観 -> ウィジェット remove_menu_page( 'options-general.php' ); // 設定 remove_menu_page('index.php'); // ダッシュボード } add_action('admin_menu', 'remove_menus'); }

そしてエラー箇所のコードをコメントアウトすると、画面は表示されます。
しかし、任意のプラグイン(スラッグ名:festi-cart)は非表示のままです。

よろしくお願いいたします。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。