Я уже знаком с этой маленькой хитростью для удаления автоматического форматирования абзацев в WordPress:
remove_filter( 'the_content', 'wpautop' );
remove_filter( 'the_excerpt', 'wpautop' );
…Однако добавив это в functions.php удаляет абзацы для всего сайта. Это не то, что я хочу, так как клиент должен иметь возможность вносить изменения самостоятельно (форматирование абзаца действительно помогает им в сообщениях).
Где автоматические вставки абзаца особенно вредны, находится на домашней странице клиента, где есть фрагменты javascript. Так что в идеале я хотел бы отключить автоматическое форматирование p для этой страницы в одиночку или все страницы при необходимости оставляйте посты в покое.
Есть идеи? Я могу предоставить больше информации, если это необходимо.
Заранее спасибо!
Редактировать:
Плагины, которые я пробовал: Php Exec, Raw HTML, Отключить Автозапуск WordPress, PS Отключить Автоформатирование, Переключить wpautop
Вы должны быть в состоянии проверить, является ли отображаемый шаблон страницей, использующей is_page (), а затем при желании запустить фильтр. Зацепляемся 'wp_head'
чтобы мы могли выполнить проверку раньше the_content
называется.
Пример:
function remove_p_on_pages() {
if ( is_page() ) {
remove_filter( 'the_content', 'wpautop' );
remove_filter( 'the_excerpt', 'wpautop' );
}
}
add_action( 'wp_head', 'remove_p_on_pages' );
Вы можете добавить пользовательскую категорию на нужную страницу, а затем использовать идентификатор категории, чтобы отключить wp_autop.
//no paragraph
function no_auto_paragraph( $atts ){
$cats = get_the_category();
$cat = $cats[0]->cat_ID;
if ($cat == 7 ){ //in my case the category is 7
remove_filter( 'the_content', 'wpautop' );
}
}
add_action( 'wp_head', 'no_auto_paragraph' );
//no_auto_paragraph END
Я предлагаю добавить его в файл home.php темы, если необходимо. В идеале, просто добавьте его в файл javascript темы или иным образом отделите контент (содержимое домашней страницы) от контроллера (ваш javascript) (например, включая файл JS только на главной странице).