web-dev-qa-db-ja.com

ユーザーロールに機能を追加する方法

私はWordpressネットワークを管理していて、unfiltered_htmlユーザー機能をAdminの既に定義されたユーザーロールに追加したいと思います。 Wordpressの標準インストールでは管理者アカウントにはすでにこの機能がありますが、MUインストールではスーパー管理者だけがこの機能を提供されます。 Wordpress 役割と機能

テーマやプラグインから管理者ロールを増強するにはどうすればよいですか?

12
Jonnybojangles

WP_Role classを使用できます。

// get the the role object
$role_object = get_role( $role_name );

// add $cap capability to this role object
$role_object->add_cap( $capability_name );

// remove $cap capability from this role object
$role_object->remove_cap( $capability_name );

管理者がSCRIPTタグとIFRAMEタグを投稿コンテンツに入力できるようにする方法についての元の質問に対処するために、Multisiteではスーパー管理者にのみ付与される「unfiltered_html」機能を探しています。

// get the the role object
$admin_role = get_role( 'administrator' );
// grant the unfiltered_html capability
$admin_role->add_cap( 'unfiltered_html', true );

あるいは、関数内でこれを一度実行することもできます。

/* Roles & Capabilities */
add_role('professional', 'Professional User', array(
    'read' => true, // True allows that capability, False specifically removes it.
    'edit_posts' => true,
    'delete_posts' => true,
    //'edit_published_posts' => true,
    //'publish_posts' => true,
    //'edit_files' => true,
    'upload_files' => true //last in array needs no comma!
));
12
Philip

スーパー管理者または管理者以外の別の役割(Wordpressのインストールがネットワーク/ MUインスタンスかどうかによって異なる)を許可するには、フィルタを適用していないhtmlを投稿またはコメントに追加する必要があります。

ユーザーに特定の機能があるかどうかを確認してください。

if ( current_user_can( 'unfiltered_html' ) ) { … }

そうであればKSESを削除してください

kses_remove_filters();

この機能はすでにunfiltered-muにまとめられているので、管理者や編集者は未フィルタのHTMLを追加できます。

2
Jonnybojangles