it-swarm.com.de

Deaktivieren Sie die Minimierung von Admin-Meta-Boxen

Ich habe versucht, die Funktion zum Ausblenden von Admin-Meta-Boxen zu deaktivieren. So wie es aussieht, erstellt WordPress diese Funktionalität in postbox.js/wp-admin/js /, aber ich konnte keinen Haken oder kein geeignetes JavaScript finden, um die eingebauten Funktionen zu überschreiben.

Dies ist ein Testcode, mit dem ich arbeite:

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

    e.preventDefault();
    return false;

});

Überlegungen, wie dies erreicht werden könnte?

2
Scott

Fügen Sie dies zu Ihrer Funktionsdatei hinzu und es werden die Metabox-Umschalter deaktiviert:

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

Für die aktuelle Wordpress-Version (4.5.3) habe ich die folgende Lösung gefunden, mit der der Handler zum Schließen von Metaboxen entfernt und alle zuvor geschlossenen Metaboxen geöffnet werden.

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);

Wenn Sie es innerhalb eines Themas verwenden möchten, sollten Sie plugin_dir_url(__FILE__) durch get_template_directory_uri() oder get_stylesheet_directory_uri() für ein untergeordnetes Thema ersetzen.

1
jmarceli