web-dev-qa-db-fra.com

Supprimer l'onglet de texte

Je voudrais demander s'il existe une fonction pour supprimer/désactiver l'onglet Texte pour les utilisateurs?

Assez de bons codes ici pour faire un CMS propre, seulement celui-là, je ne le trouve pas.

Screenshot

2
Arnolddew

Cela nécessite deux étapes:

1) Nous devons d’abord masquer les onglets de l’éditeur, ce qui peut être fait assez facilement avec CSS. Pour ce faire, nous publierons du code CSS dans la tête de l'administrateur:

function hide_editor_tabs() {
    global $pagenow;

    // Only output the CSS if we're on the edit post or add new post screens.
    if ( ! ( 'post.php' == $pagenow || 'post-new.php' == $pagenow ) ) {
        return;
    }

?>
<style>
    .wp-editor-tabs {
        display: none;
    }
</style>
<?php

}
add_action( 'admin_head', 'hide_editor_tabs' );

Gardez à l'esprit que même si nous ne pouvons cacher qu'un seul des onglets, comme le demande le PO, nous devrions en fait les cacher tous les deux. Puisqu'il n'y en a que deux au total, cela n'aurait aucun sens de n'en cacher qu'un, puis de laisser un seul onglet, ce qui n'aurait alors aucun sens.

2) Ensuite, nous devons forcer l'éditeur visuel à être le logiciel par défaut. Comme nous avons caché les onglets à la première étape, les utilisateurs ne pourront pas quitter le paramètre par défaut.

function force_default_editor() {
    return 'tinymce';
}
add_filter( 'wp_default_editor', 'force_default_editor' );

Si vous souhaitez forcer l'éditeur de texte à la place, remplacez simplement return 'tinymce'; par return 'text'; à l'étape 2.

1
Philip Newcomer

En ajoutant à mon commentaire sur la réponse acceptée, vous devriez le faire aussi, sinon ils pourraient simplement le changer sur leur page de profil, ce qui irait à l'encontre de l'objectif des autres fonctions. Vous pouvez même aller de l'avant et héberger le champ avec jQuery .hide ou css.

// This updates the database on profile update to ensure rich_editing is selected ture 
function disable_rich_editing_profile_update() {     
    global $wpdb; 
    $wpdb->query("UPDATE " . $wpdb->prefix . "usermeta SET meta_value = true WHERE meta_key = 'rich_editing'");
} 
add_action('profile_update', 'disable_rich_editing_profile_update', 10, 2); add_action('user_register', 'disable_rich_editing_profile_update', 10, 2);


// Optionally hide the fields as well from the end user
function remove_profile_editor_css() { 
    if (is_admin() { 
        ?>
        <style type="text/css"> 
            #your-profile > table:nth-child(5) > tbody > tr:nth-child(1) {                 
                display: none; 
            }
        </style> 
        <?php 
    } 
} 
add_action( 'admin_head-profile.php', 'remove_profile_css' );
0
Bryan Willis