J'ai une page avec certains balises html et attributs d'élément, comme indiqué dans l'extrait ci-dessous:
<ul class="accordion" data-accordion="">
Lorsque je modifie la page en tant qu'utilisateur avec le rôle d'administrateur WP, le <ul>
reste intact lors de la mise à jour de la page. Parfait.
Pourtant, lorsqu'un utilisateur avec le rôle WP Editor (Editeur) modifie la page, la balise ul est enregistrée comme suit:
<ul class="accordion">
Notez que l'attribut data-accordéon est supprimé.
Comment faire en sorte que WordPress conserve les attributs des balises de marquage pour les utilisateurs dotés du rôle Editeur?
Il suffit d'ajouter la capacité unfiltered_html
au rôle Editor
.
Ajoutez le code suivant dans le functions.php
de votre thème actuel:
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 );
Connectez-vous en tant qu'utilisateur avec le rôle Editor
. Testez-le en modifiant n'importe quel article/page. Le balisage HTML sera préservé. Supprimez le code ci-dessus de functions.php
.
Si vous décidez de supprimer la capacité unfiltered_html
du rôle Editor
, répétez les étapes décrites ci-dessus en utilisant le code suivant:
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 );