Wordpress düzenleme sayfa ekranından ana düzenleyicisi kaldır

4 Cevap php

Herkes sayfa düzenleme ekranından ana editörü kaldırmak için bir yol biliyor musun? Ve sadece css ile. Ben TinyMCE ile birkaç başka meta kutuları ekledik ve onlar ana biri ile çarpışır.

Ben düzenleme ekranında diğer meta kutuları kaldıran bir sınıf var, ama ana editör bu şekilde kurtulmak olamaz. (Ama hayır şans ile) sınıfında diziye 'divpostrich' ve 'divpost' eklemek için denedim:

class removeMetas{
    public function __construct(){
        add_action('do_meta_boxes', array($this, 'removeMetaBoxes'), 10, 3);
    }

    public function removeMetaBoxes($type, $context, $post){
        /**
         * usages
         * remove_meta_box($id, $page, $context)
         * add_meta_box($id, $title, $callback, $page, $context = 'advanced', $priority = 'default')
         */
        $boxes = array( 'slugdiv', 'postexcerpt', 'passworddiv', 'categorydiv',
                        'tagsdiv', 'trackbacksdiv', 'commentstatusdiv', 'commentsdiv',
                        'authordiv', 'postcustom');

        foreach ($boxes as $box){
            foreach (array('link', 'post', 'page') as $page){
                foreach (array('normal', 'advanced', 'side') as $context){
                    remove_meta_box($box, $type, $context);
                }
            }
        }
    }
}

$removeMetas = new removeMetas();

Ben de jquery ile 'divpostrich' kaldırarak denedim. Ama nerede o iş için JS koymak için çözemiyorum. Ben kundakçı ile tarayıcıda 'postdivrich' çıkardığınızda - Kalan TinyMCE alanlar mükemmel çalışır.

Herhangi bir fikir?

4 Cevap

Ne arıyorsun küresel $_wp_post_type_features dizidir.

Aşağıda bunun nasıl kullanılabileceğini hızlı bir örneğidir

function reset_editor()
{
     global $_wp_post_type_features;

     $post_type="page";
     $feature = "editor";
     if ( !isset($_wp_post_type_features[$post_type]) )
     {

     }
     elseif ( isset($_wp_post_type_features[$post_type][$feature]) )
     unset($_wp_post_type_features[$post_type][$feature]);
}

add_action("init","reset_editor");

Böylece globalleri doğrudan keman var ve onlar hiç özellikleri nasıl ele değiştirirseniz ileriye uyumluluk sağlamak değil, bu WP destek orada inşa edilmiştir. WP Çekirdek kod @ user622018 olarak hemen hemen aynı mantık ancak cevap vermiyor

function remove_editor() {
  remove_post_type_support('page', 'editor');
}
add_action('admin_init', 'remove_editor');

Meta kutuları onunla çarpışan gibi sadece, HTML editörü bırakarak, TinyMCE editörü devre dışı değil misiniz? :)

Editörü devre dışı bırakmak için size wp-config.php dosyasını düzenleyin ve üst bu satırı eklemek gerekir:

define('DISALLOW_FILE_EDIT', true);