以下のスニペットに示すように、特定のHTMLマークアップと要素属性を含むページがあります。
<ul class="accordion" data-accordion="">
WP管理者ロールを持つユーザーとしてページを編集すると、ページの更新時に<ul>
がそのまま残ります。完璧です。
しかし、WP編集者ロールを持つユーザーがページを編集すると、ulタグは次のように保存されます。
<ul class="accordion">
Data-accordion属性が削除されていることに注目してください。
WordPressにEditorロールを持つユーザーのマークアップタグ属性を保持させるにはどうすればよいですか?
Editor
ロールにunfiltered_html
機能を追加するだけで十分です。
現在のテーマのfunctions.php
に次のコードを追加します。
function wpse_change_capability() {
$role = get_role( 'editor' );
if ( ! $role->has_cap( 'unfiltered_html' ) )
$role->add_cap( 'unfiltered_html' );
}
add_action( 'init', 'wpse_change_capability', 10 );
Editor
ロールを持つユーザーとしてログインします。投稿/ページを編集してテストします。 HTMLマークアップは保持されます。 functions.php
から上記のコードを削除してください。
Editor
ロールからunfiltered_html
機能を削除する場合は、次のコードを使用して上記の手順を繰り返します。
function wpse_change_capability() {
$role = get_role( 'editor' );
if ( $role->has_cap( 'unfiltered_html' ) )
$role->remove_cap( 'unfiltered_html' );
}
add_action( 'init', 'wpse_change_capability', 10 );