web-dev-qa-db-ja.com

マークアップでHTML 5属性を保持する方法

以下のスニペットに示すように、特定のHTMLマークアップと要素属性を含むページがあります。

<ul class="accordion" data-accordion="">

WP管理者ロールを持つユーザーとしてページを編集すると、ページの更新時に<ul>がそのまま残ります。完璧です。

しかし、WP編集者ロールを持つユーザーがページを編集すると、ulタグは次のように保存されます。

<ul class="accordion">

Data-accordion属性が削除されていることに注目してください。

WordPressにEditorロールを持つユーザーのマークアップタグ属性を保持させるにはどうすればよいですか?

3
user98796

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 );