web-dev-qa-db-ja.com

管理メタボックスの折りたたみを無効にする

管理メタボックスを折りたたむ機能を無効にしようとしています。その外観から、WordPressはpostbox.js/wp-admin/js /にこの機能を作成しますが、内蔵関数を上書きするためのフックや適切なJavaScriptを見つけることができませんでした。

これは私が取り組んでいるいくつかのテストコードです。

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

    e.preventDefault();
    return false;

});

これがどのようにして達成され得るかについての任意の考え?

2
Scott

これをあなたの関数ファイルに追加すると、メタボックストグルが止まります。

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

現在のWordpressバージョン(4.5.3)では、閉じているメタボックスハンドラを削除し、以前に閉じていたメタボックスをすべて開くという次のような解決策を思いついた。

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

テーマの中でそれを使いたい場合は、子テーマのためにplugin_dir_url(__FILE__)get_template_directory_uri()またはget_stylesheet_directory_uri()に置き換えてください。

1
jmarceli