ユーザー権限 - ユーザー ロールでコードをトリガーする (Wordpress)
-
20-09-2019 - |
質問
PHPでカスタムプラグインを開発しているため、既存のプラグインは使用できません。私が達成したいのは、一部のユーザーに対して投稿内に異なる URL を表示したいことです。wordpressに登録しているユーザーの場合は、私に連絡して「承認」されました。この追加のユーザー プロファイル フィールドを設定して、このフィールドを条件で使用できるようにしたいと考えています。したがって、このフィールドがないゲストとユーザー、またはこのフィールドに正しい値がないゲストとユーザーは url1 を取得しますが、他のゲストとユーザーは url2 を取得します。
要件
- 管理者ロールを持つユーザーのみ
- 追加のユーザープロファイルフィールドを作成/編集できます
- 他のすべてのユーザーにとって
Wordpress に追加のユーザー プロフィール フィールドを追加する方法はわかっていますが (以下のリンクを参照)、そのフィールドの編集を特定のロールのユーザーに制限する方法と、管理者ロールを持つユーザーがこのフィールドを作成/編集する方法がわかりません。すべてのユーザー。wordpress ダッシュボード/ユーザー/新しいユーザーおよび/またはダッシュボード/ユーザー/作成者とユーザーの下に新しいコードを追加する必要があるようです。
Google 検索を行ったところ、ユーザー プロフィール フィールドを追加する方法に関するサイトがいくつか見つかりました。
それは私には思われる カスタム ユーザー プロファイル フィールドの追加と使用 ほぼ私がやりたいことですが、「管理者だけがそれを実行できる」を管理する方法がまだわかりません。
解決
これはどうます:
$ID="2";
$user = new WP_User($ID);
if ($user->wp_capabilities['administrator']==1) {
//code here
}
ワードプレスの
は、ユーザー機能については、このリンクを参照してくださいあなたが与えた上で、そのリンクを持つので、このような多分何かます:
function my_show_extra_profile_fields( $user ) {
if ($user->wp_capabilities['administrator']!=1) {
return false;
} ?>
<h3>Extra profile information</h3>
<table class="form-table">
<tr>
<th><label for="twitter">Twitter</label></th>
<td>
<input type="text" name="twitter" id="twitter" value="<?php echo esc_attr( get_the_author_meta( 'twitter', $user->ID ) ); ?>" class="regular-text" /><br />
<span class="description">Please enter your Twitter username.</span>
</td>
</tr>
</table>
<?php }
所属していません StackOverflow