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

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

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

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

PHP

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

2038閲覧

閲覧者権限(独自の権限を追加)にするとプロフィールの更新ボタンを非表示になるようにしたい

akkkkin

総合スコア83

WordPress

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

PHP

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2017/02/27 00:15

編集2017/02/27 05:58

目的:閲覧者権限(独自の権限を追加)にするとプロフィールを更新できないようにしたい。
すなわち、閲覧者権限にするとプロフィールの「ユーザーを更新ボタン」が非表示になることで
プロフィールの更新を防ぐようにしたい。

■やったことと
・プラグインUser Role Editorで閲覧者(viewer)という権限を追加
※現在設定している権限の範囲は購読者と同じ

・viewerの権限の場合はユーザーの更新ボタンが非表示になるというPHPコードをfunction.phpに書けば
実現可能そうなのだが、ググってもそれに関連する有益な情報を得ることができていない状況

・エンジニアのためのWordPress入門という本を購入し、調べましたが、どの箇所がそれに該当するのかがまだ、発見できず・・・

上記の解決方法について詳しい方がいらっしゃればご教示頂きたく思います。

宜しくお願いします。

追記
おそらく下記のコードをfunctionに追加すれば良いのかと思っているのですが、
?????の箇所になんと入れればいいのか難航中です。

function add_theme_caps(){
$role = get_role( 'viewer' );
$role->remove( '?????' );
}
add_action( '?????', '?????' );

・ボタン箇所に記述
<input type="submit" class="btn btn-default" value="情報を更新して保存する" name="submit" id="submit" />

追記2
profile-form.phpの箇所にボタンの表示箇所がございます。
<input type="submit" class="btn btn-default" value="情報を更新して保存する" name="submit" id="submit" />

上記の記述だけ、閲覧権限の場合のみ非表示とphpを記述することは可能でしょうか?

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

akkkkin

2017/02/27 01:22

コメントありがとうございます。 おそらく下記のコードをfunctionに追加すれば良いのかと思っているのですが、 ?????の箇所になんと入れればいいのか難航中です。 function add_theme_caps(){ $role = get_role( 'viewer' ); $role->remove( '?????' ); } add_action( '?????', '?????' ); ・ボタン箇所に記述 <input type="submit" class="btn btn-default" value="情報を更新して保存する" name="submit" id="submit" />
Zuishin

2017/02/27 01:24

リンク先読みました?
akkkkin

2017/02/27 01:36

回答ありがとうございます。 読みました。上記に書いた記述も使えないということなのでしょうか。 つまり、CSSを操作して非表示にするしかない?ということでしょうか。 Adminimizeのプラグインはつかってみましたがプロフィールの項目までは使えないようでした。 ですので、2つ目のリンクの権限ごとに異なるメニューのリンク先の記述を応用して考えていました。。。
Zuishin

2017/02/27 02:47

ユーザー管理画面の処理は、wp-admin/user-edit.phpにあります。 投稿画面などはmetaboxという仕組みを使ってフォーム部品を管理できるようになっているのですが、ユーザー管理画面はそうではなく、フォーム部品がHTMLでほぼ直書きされています。 そしてブロックごとにアクションフックがあり、フォーム部品などのコードが「追加」できるようになっています。 しかし、フィルターフックで削除や変更ができるようになっているのは「連絡先情報」だけです。 と、このように書いてあります。 つまり、ここを書き換えればいい、というか、フックはきかないのでここを書き換えるしかないということです。
akkkkin

2017/02/27 05:57

回答ありがとうございます。profile-form.phpの箇所にボタンの表示箇所がございます。 <input type="submit" class="btn btn-default" value="情報を更新して保存する" name="submit" id="submit" /> 上記の記述だけ、閲覧権限の場合のみ非表示とphpを記述することは可能でしょうか?
Zuishin

2017/02/27 06:14

profile-form.php というファイルは私のところにはありません。どこにありますか?
akkkkin

2017/02/27 06:21 編集

回答ありがとうございます。
Zuishin

2017/02/27 06:20

テーマは関係ないと思います。
akkkkin

2017/02/27 06:25

このpluginのprfile-form.phpファイルの192行目の <input type="submit" class="button-primary" value="<?php esc_attr_e( 'Update Profile', 'theme-my-login' ); ?>" name="submit" id="submit" /> の箇所を閲覧権限の場合のみ非表示とphpを記述することは可能でしょうか?
Zuishin

2017/02/27 06:27

このプラグイン使ったことないんですが、ざっと見たところログインボタンじゃありませんか? このボタンを消すとログインできなくなるんじゃありませんか?
akkkkin

2017/02/27 06:31

いえ、プロフィールの更新ボタンです(Update Profileとございます)。
Zuishin

2017/02/27 06:55

次のようにしてみてはいかがでしょう? 'viewer' の部分は適宜書き換えてください。 <?php if (!current_user_can('viewer')) : ?> <p class="tml-submit-wrap"> <input type="hidden" name="action" value="profile" /> <input type="hidden" name="instance" value="<?php $template->the_instance(); ?>" /> <input type="hidden" name="user_id" id="user_id" value="<?php echo esc_attr( $current_user->ID ); ?>" /> <input type="submit" class="button-primary" value="<?php esc_attr_e( 'Update Profile', 'theme-my-login' ); ?>" name="submit" id="submit" /> </p> <?php endif; ?>
akkkkin

2017/02/27 07:06

いけました。ありがとうございます!!!!!!!!!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問