web-dev-qa-db-fra.com

Comment désactiver les infobulles 3.3?

Je trouve les infobulles 3.3 ennuyeuses lorsque je mets à jour de nombreux sites en direct et en développement. Comment puis-je les désactiver via functions.php? Unenqueue wp-includes/js/wp-pointer.js?

3
markratledge

Vous pouvez également supprimer le script de pointeur et le style de leurs tableaux respectifs juste après leur enregistrement à l'aide de cette méthode.

// Remove javascript
add_action( 'wp_default_scripts' , 'remove_pointer_script' );
function remove_pointer_script( $wp_scripts ) {
    $wp_scripts->remove('wp-pointer');
}

// Remove stylesheet
add_action( 'wp_default_styles' , 'remove_pointer_style' );
function remove_pointer_style( $wp_styles ) {
    $wp_styles->remove('wp-pointer');
}

La méthode remove fait partie de la classe de dépendances qui est étendue à la fois par les classes WP_Scripts et WP_Styles. Elle effectue essentiellement l'inverse de la méthode add, qui est utilisé dans le noyau pour enregistrer les scripts et les styles par défaut. Mentionné si vous êtes curieux de savoir d'où vient cette méthode et à quoi elle sert.

Je suppose que vous pouvez également encapsuler ces actions dans une vérification current_user_can également si vous souhaitez les supprimer pour des utilisateurs spécifiques, par exemple les administrateurs.

if( current_user_can( 'manage_options' ) ) {
    add_action( 'wp_default_scripts' , 'remove_pointer_script' );
    add_action( 'wp_default_styles' , 'remove_pointer_style' );
}

Personnellement, j'aime bien les nouvelles infobulles, et il est dommage qu'il ne soit pas encore possible d'utiliser une API simple pour les utiliser dans des plugins , mais je peux voir à quel point cela peut être ennuyant. Vous effectuez de nombreuses installations ou mises à niveau et vous ne devez effectuer que des tâches.

2
t31os

Oui, supprimez simplement le script (et les styles):

add_action('admin_enqueue_scripts', 'no_pointers');

function no_pointers(){
  wp_dequeue_script('wp-pointer');
  wp_dequeue_style('wp-pointer');
}

Ou vous pouvez simplement les désactiver de façon permanente pour un utilisateur spécifique (exécuté une seule fois):

WP_Internal_Pointers::dismiss_pointers_for_new_users($user_id = 0);
4
onetrickpony