2

我一直在尝试仅从特定页面中删除可视化编辑器。我设法使用此代码从所有页面中删除了可视化编辑器

add_filter( 'user_can_richedit', 'patrick_user_can_richedit');

function patrick_user_can_richedit($c) {
global $post_type;

if ('page' == $post_type)
return false;
return $c;
}

有什么办法可以只从一页中删除可视化编辑器吗?我正在使用 WordPress

4

4 回答 4

5

天啊...你要在多少个论坛上发布这个问题?大声笑...这与我在 .org 论坛上发布的解决方案相同...但是...

我告诉过你更好的解决方案是不要修改核心 WP 文件,而只需使用这样的插件:在特定页面或帖子上禁用 WYSIWYG

这样,您就不会修补核心 WP 文件,并且当您更新 WP 时,您不会丢失所有更改……因此您不必随身携带个人更改日志。

记住规则:“当有疑问时,不要”......如果您正在考虑更改所有 php 文件,并且您不确定是否应该这样做,请不要。

于 2013-03-27T08:58:00.467 回答
2

这对我有用

// removes rich text editor for certain pages
function remove_pages_editor(){
    if(get_the_ID() === 95) {
        remove_post_type_support( 'page', 'editor' );
    } // end if
} // end remove_pages_editor
add_action( 'add_meta_boxes', 'remove_pages_editor' );
于 2014-04-13T01:05:13.873 回答
1

您可以使用一些插件来添加自定义字段(高级自定义字段是最好的),然后在以下代码中使用它:

add_filter( 'user_can_richedit', 'on_post_user_can_richedit');
function on_post_user_can_richedit($c) {
    global $post_type;
    $sw_off_visual_editor = get_field('sw_off_visual_editor');

    if(!empty($sw_off_visual_editor) && $sw_off_visual_editor[0] == 1)
        return false;
    return $c;
}

我添加了自定义复选框,从 get_field('sw_off_visual_editor'); 中获取,然后对其进行测试 $sw_off_visual_editor[0] == 1。

于 2013-05-17T13:44:58.120 回答
0

要仅删除 [Visual] 选项卡并强制使用 HTML/TEXT,这将起作用。您可以将其他 page_id 添加到 if 命令以定位其他页面。

add_filter( 'admin_footer', 'removes_editor_visual_tab', 99 );

function removes_editor_visual_tab()
{
    $post_id = $_GET['post'];
    if($post_id == 1434){
    ?>
        <style type="text/css">
        a#content-tmce, a#content-tmce:hover {
            display:none;
        }
        </style>
        <script type="text/javascript">
            jQuery(document).ready(function() {
                document.getElementById("content-tmce").onclick = 'none';
            });
        </script>
    <?php
    }
}
于 2014-11-13T19:22:52.817 回答