8

有人知道从页面编辑屏幕中删除主编辑器的方法吗?不仅仅是css。我用 tinymce 添加了一些其他元框,它们与主框发生碰撞。

我有一个从编辑屏幕中删除其他元框的类,但我不能以这种方式摆脱主编辑器。我尝试将“divpostrich”和“divpost”添加到类中的数组中(但没有运气):

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

我也试过用 jquery 删除'divpostrich'。但是无法弄清楚将js放在哪里才能工作。当我使用 firebug 在浏览器中删除“postdivrich”时 - 我剩余的 tinymce 字段运行良好。

有任何想法吗?

4

5 回答 5

31

内置的 WP 对此提供支持,因此您不必直接摆弄全局变量,并确保在它们改变特性的处理方式时向前兼容。WP Core 代码的逻辑与@user622018 答案几乎完全相同

function remove_editor() {
  remove_post_type_support('page', 'editor');
}
add_action('admin_init', 'remove_editor');
于 2013-02-04T22:50:44.030 回答
9

您正在寻找的是全局$_wp_post_type_features数组。

以下是如何使用它的快速示例

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");
于 2011-10-07T13:31:21.227 回答
3

将以下代码添加到您的函数中。

function remove_editor_init() {
if ( is_admin() ) {
    $post_id = 0;
    if(isset($_GET['post'])) $post_id = $_GET['post'];
    $template_file = get_post_meta($post_id, '_wp_page_template', TRUE);
    if ($template_file == 'page-home.php') {
        remove_post_type_support('page', 'editor');
    }
}
}
add_action( 'init', 'remove_editor_init' );
于 2017-02-07T15:41:06.997 回答
0

要禁用编辑器,您需要编辑wp-config.php文件并将此行添加到顶部:

define('DISALLOW_FILE_EDIT', true);
于 2013-07-29T18:08:47.503 回答
0

难道你不能禁用 TinyMCE 编辑器,离开 HTML 编辑器,因为你的元框正在与它发生冲突吗?:)

于 2010-03-30T14:07:13.780 回答