Je dois désactiver la fonctionnalité glisser-déposer pour les widgets de tableau de bord.
Cela devrait être réalisé avec jquery, tout comme pour dashboard_browser_nag. Je ne suis pas un expert en jquery. Quelqu'un peut-il me dire comment trouver et modifier mes widgets avec jquery?
Jusqu'à présent, je sais que je dois faire quelques .sortable ("cancel"), mais comment exactement?
Merci!
Cela supprimera la fonctionnalité déplaçable de chaque widget:
jQuery('.widget.ui-draggable').draggable('destroy')
Vous avez trouvé un bon moyen d’injecter cela dans votre code, soit via wp_enqueue_script()
, soit de le renvoyer en ligne sur la page du widget.
Pour cibler un widget spécifique, vous devez faire quelque chose dans ce sens:
jQuery('.widget.ui-draggable').each(function() {
if (jQuery(this).find('h4').text() == 'Archives')
jQuery(this).draggable('destroy');
}
Ou sélectionnez votre chemin pour trouver le widget par id
:
widget-2_calendar-__i__
widget-3_categories-__i__
...
Si vous parcourez les sources, vous découvrirez bientôt comment elles sont formées en interne par WordPress. Le reste appartient à jQuery, aux sélecteurs, peut-être aux expressions régulières (bien que je ne les recommande pas dans ce cas).
Pas testé, mais cela vous permettrait au moins de commencer. Ajoutez ceci à functions.php ou créez votre propre plugin pour cela.
function remove_drag_and_drop() {
wp_dequeue_script( 'jquery-ui-sortable' );
}
add_action('wp_dashboard_setup', 'remove_drag_and_drop' );
Approche intéressante. Ne fonctionne pas comme ça cependant. Mon meilleur travail jusqu'ici est d'empêcher l'ajout de scripts de pied de page:
function remove_footer_scripts() { return false; }
add_filter('print_footer_scripts', 'remove_footer_scripts');
Clairement pas une bonne solution. Mais la fonction wp_dequeue_script
suggérée pour supprimer un seul script ne fonctionne pas - peut-être que "wp_dashboard_setup" correspond au mauvais hook? J'ai aussi essayé de me connecter à 'wp_default_scripts' et de modifier le $wp_scripts
lui-même, mais sans succès ...
@ Ijaas: bon point, cela casserait également admin_widgets et admin_gallery, mais n'est-il pas possible d'ajouter l'action/le filtre en fonction du $current_screen
? Devrait être, car c'est un script de pied de page qui est ajouté après l'appel de set_current_screen()
.