web-dev-qa-db-fra.com

Comment supprimer le bouton de personnalisation du thème de la page d'options du tableau de bord et des thèmes?

Dans mon thème Wordpress que je suis en train de créer, je ne profite pas de l'API de personnalisation de thème Wordpress. Autant que je voudrais aussi, j'ai investi beaucoup trop de temps dans mon propre cadre d'options de thème personnel pour changer les choses.

Cela m'amène à ma question. Comment supprimer le bouton bleu "Personnalisez votre site" du tableau de bord, ainsi que le lien affiché lors de l'affichage Apparence> Thèmes? J'ai fait quelques recherches sur Google, mais mon Google-Fu a échoué et n'a pas pu trouver de solution n'utilisant ni CSS ni Javascript.

Idéalement, un crochet pour l'enlever serait le mieux. Mais s'il n'y a pas de moyen propre de le faire, une solution JS et/ou CSS conviendrait.

6
Dwayne Charrington

Avec la dernière version de WordPress (4.3), vous pouvez maintenant supprimer de manière native le paramètre de changement de thème du client sans recourir aux hacks CSS.

/**
 * Remove customizer options.
 *
 * @since 1.0.0
 * @param object $wp_customize
 */
function ja_remove_customizer_options( $wp_customize ) {
   //$wp_customize->remove_section( 'static_front_page' );
   //$wp_customize->remove_section( 'title_tagline'     );
   //$wp_customize->remove_section( 'nav'               );
   $wp_customize->remove_section( 'themes'              );
}
add_action( 'customize_register', 'ja_remove_customizer_options', 30 );
5
jaredatch

Dans la dernière version de WordPress, la section "thèmes" est un panneau. Elle doit donc être supprimée comme suit:

add_action( 'customize_register', 'prefix_remove_customizer_options', 30 );
/**
 * Remove customizer options.
 *
 * @since 1.0.0
 * @param object $wp_customize The current WordPress customizer object.
 */
function prefix_remove_customizer_options( $wp_customize ) {
    $wp_customize->remove_panel( 'themes' );
}
2
Robert Neu

Il n'y a pas de crochets à cette partie du tableau de bord.

Cela doit être fait avec CSS (ou jQuery si vous voulez le convertir en autre chose).

add_action( 'admin_head-index.php', 'hide_customize_button_wpse_82424' );

function hide_customize_button_wpse_82424(){
    ?>
    <style type="text/css">div.welcome-panel-column:first-child {display:none;} </style>
    <?php
}

[update]

Comme l'a souligné @helenhousandi dans un commentaire:

la fonction wp_welcome_panel() est ajoutée sur le hook welcome_panel, mais non, il n'y a pas (délibérément) de hooks dans cette fonction.

Une autre approche consiste donc à supprimer le crochet d’action et à recréer la fonction wp_welcome_panel(), comme suit:

add_action( 'load-index.php', 'remove_welcome_panel' );
function remove_welcome_panel()
{
    remove_action( 'welcome_panel', 'wp_welcome_panel' );
    add_action( 'welcome_panel', 'my_welcome_panel' );
}

Et my_welcome_panel est une réplique dewp_welcome_panel()adapté comme on le souhaite.

S'il vous plaît, notez également son observation: mon emphase

_ {Je suggérerais par contre de ne pas le supprimer publiquement, cependant, car un utilisateur peut s'attendre à ce qu'il soit là. Lors des tests, nous avons constaté que de nombreux nouveaux utilisateurs revenaient à ce panneau de bienvenue, même après s’être familiarisés.

1
brasofilo

Vous devez passer le code suivant sur function.php

function theme_option_remove( $wp_customize ) {
$wp_customize->remove_section("themes");
}
add_action( 'customize_register', 'theme_option_remove' ,20 );
0