Хак: визуальный редактор только для конкретных записей
Если у вас вдруг появилась необходимость сохранять html код страницы/записи в админке WordPress, но вы испытываете трудность от того, что расширенный редактор вырезает определенный код из исходного при переходе на него с режим HTML, то следующий хак вам поможет это исправить :)
Честно говоря, достаточно редко такое необходимо, но тем не менее…
В общем, открываете functions.php
шаблона или главный файлы своего/любого плагина и вставляете следующий код:
add_action('init', 'hack_visual_editor'); function hack_visual_editor(){ if( is_admin() && !empty($_GET['post']) && $_GET['action'] == 'edit' ){ $slug = get_post_field( 'post_name', $_GET['post'] ); if( $slug == 'sitemap' ) { global $current_user, $wp_rich_edit; $current_user->data->rich_editing = 'false'; $wp_rich_edit = false; } }else{ return false; } }
Как видите, все достаточно просто – мы обманываем WordPress, заставляя его думать, что на текущей странице (в данном случае на странице редакторования записи со слагов 'sitemap'
) для текущего пользователя запрещен режим Визуального редактора.
Естественно, можно запрещять по любому параметру (например, ID или названию поста), для этого вам надо отредактировать строчку if( $slug == 'sitemap' ) {
.
Это больше похоже не на хак, а на костыль … Использование в данном случае простого if( $slug == ‘sitemap’ ) делает код слишком привязанным к конкретным страницам. Лучше всего было бы использовать или дополнительное поле (не сложно задать его при создании страницы) или даже визуальную “галочку” …
Запись в рубрике DevDocs :) Это тот код который мне нужно было сделать для проекта – другие варианты не подходили (нельзя было давать пользователям позможность что-то менять для вполне конкретных не меняющихся страниц).
В любых случаях – идея ясна, реализация понятна, осталось заинтересованным просто поменять условие на нужное им – все просто :)