给出的答案to a previous and identical question 很遗憾,我的WP安装不起作用。
我正在使用推荐的函数版本there.
function nim_hide_editor() {
$post_id = $_GET[\'post\'] ? $_GET[\'post\'] : $_POST[\'post_ID\'] ;
$template = get_post_meta( $post_ID , \'_wp_page_template\', true );
if($template == \'portfolio.php\'){
/*echo "<style>#postdivrich{display:none;}</style>";*/
remove_post_type_support( \'page\', \'editor\' );
}
}
add_action(\'admin_init\', \'nim_hide_editor\');
我加入了注释掉的行,以表明我尝试了响应备选答案中提到的样式标记的技术,但在按页面模板选择时,两者都不起作用。然而
有两件事似乎不一致:
我已经通过CPanel查看了我的SQL数据库,“portfolio.php”确实是存储在post\\u meta中的值,用于我尝试使用它的页面。
按$post\\u ID选择页面,并使用remove_post_type_support
, 有效。 if($post_ID == \'13\'){
remove_post_type_support( \'page\', \'editor\' );
}
我有点发疯了,好像我已经把所有的东西都检查了三遍。显然,我可以用使用该模板的post\\u ID数组隐藏该编辑器,但这对使用该模板的未来页面不起作用。
最合适的回答,由SO网友:brasofilo 整理而成
以下内容对我很有用,用Twenty12进行测试。
使用load-{$pagenow}
而不是admin_init
避免检查全局$pagenow
. 有关更多信息,请参见备注:
// Run only when editing a page
// For new pages load-page-new.php should be used
// See: http://core.trac.wordpress.org/browser/tags/3.5.1/wp-admin/admin.php#L217
add_action( \'load-page.php\', \'hide_editor_wpse_88886\' );
function hide_editor_wpse_88886()
{
// Not really necessary, but just in case
if( !isset( $_GET[\'post\'] ) )
return;
$template = get_post_meta( $_GET[\'post\'] , \'_wp_page_template\', true );
if( \'page-templates/front-page.php\' == $template )
{
remove_post_type_support( \'page\', \'editor\' );
}
}