Intereting Posts

Удаление редактора TinyMCE для заданного шаблона страницы

Я искал способ удалить редактор TinyMCE для определенного шаблона страницы в теме (в моем случае это page-home.php). Я нашел следующий код, который работает, однако, мне было интересно, можно ли это сделать лучше / более аккуратно, возможно, используя некоторые из встроенных функций WordPress для поиска идентификатора страницы …

function hide_editor() { $post_id = $_GET['post'] ? $_GET['post'] : $_POST['post_ID'] ; if( !isset( $post_id ) ) return; $template_file = get_post_meta($post_id, '_wp_page_template', true); if($template_file == 'page-home.php'){ // template name here remove_post_type_support('page', 'editor'); } } add_action( 'admin_init', 'hide_editor' ); 

Вы можете попытаться установить крючок на load-page вместо admin_init . Предполагается, что он будет вызван только при редактировании страницы, а затем вы сможете использовать глобальную переменную $post

 function hide_editor() { global $post; $template_file = get_post_meta($post->ID, '_wp_page_template', true); if($template_file == 'page-home.php'){ // template name here remove_post_type_support('page', 'editor'); } } add_action( 'load-page', 'hide_editor' ); 

Это сработало для меня:

 function hide_editor() { if(isset($_REQUEST['post'])){ $post_id = $_REQUEST['post']; $template_file = get_post_meta($post_id, '_wp_page_template', true); if($template_file == 'page-home.php'){ // template name here remove_post_type_support('page', 'editor'); } } } add_action( 'load-post.php', 'hide_editor' );