web-dev-qa-db-fra.com

Désactiver la réduction des méta-boîtes d'administration

J'ai essayé de désactiver la possibilité de réduire les méta-boîtes d'administration. Apparemment, WordPress crée cette fonctionnalité dans postbox.js/wp-admin/js/mais je n’ai pas trouvé de hook ni de JavaScript approprié pour écraser les fonctions intégrées.

Voici un code de test avec lequel je travaille:

jQuery('.postbox h3, .postbox .handlediv, .hndle').bind('click', function(e) {

    e.preventDefault();
    return false;

});

Des idées sur la façon dont cela pourrait être réalisé?

2
Scott

Ajoutez ceci à votre fichier de fonctions et cela va tuer les bascules metabox:

function kill_postbox(){
    global $wp_scripts;
    $footer_scripts = $wp_scripts->in_footer;
    foreach($footer_scripts as $key => $script){
        if('postbox' === $script)
            unset($wp_scripts->in_footer[$key]);
    }
}
add_action('admin_footer', 'kill_postbox', 1);
3
Brian Fegter

Pour la version actuelle de Wordpress (4.5.3), je propose la solution suivante qui supprime le gestionnaire de métaboxes en fermeture et ouvre tous les métaboxes précédemment fermés.

php (plugin.php)

function add_admin_scripts( $hook ) {    
  wp_register_script( 'disable_metabox_toggling', plugin_dir_url(__FILE__) . 'index.js', 'jquery', '1.0.0', true);
  wp_enqueue_script( 'disable_metabox_toggling' );
}
add_action( 'admin_enqueue_scripts', 'add_admin_scripts', 10, 1 );

js (index.js)

(function($){
  $(document).ready(function() {
     $('.postbox .hndle').unbind('click.postboxes');
     $('.postbox .handlediv').remove();
     $('.postbox').removeClass('closed');
  });
})(jQuery);

Si vous souhaitez l'utiliser dans un thème, vous devez remplacer plugin_dir_url(__FILE__) par get_template_directory_uri() ou get_stylesheet_directory_uri() pour un thème enfant.

1
jmarceli