Как убрать автоматическое форматирование абзаца ТОЛЬКО для страниц, а не постов (WordPress)

Я уже знаком с этой маленькой хитростью для удаления автоматического форматирования абзацев в WordPress:

remove_filter( 'the_content', 'wpautop' );
remove_filter( 'the_excerpt', 'wpautop' );

…Однако добавив это в functions.php удаляет абзацы для всего сайта. Это не то, что я хочу, так как клиент должен иметь возможность вносить изменения самостоятельно (форматирование абзаца действительно помогает им в сообщениях).

Где автоматические вставки абзаца особенно вредны, находится на домашней странице клиента, где есть фрагменты javascript. Так что в идеале я хотел бы отключить автоматическое форматирование p для этой страницы в одиночку или все страницы при необходимости оставляйте посты в покое.

Есть идеи? Я могу предоставить больше информации, если это необходимо.

Заранее спасибо!


Редактировать:

Плагины, которые я пробовал: Php Exec, Raw HTML, Отключить Автозапуск WordPress, PS Отключить Автоформатирование, Переключить wpautop

4

Решение

Вы должны быть в состоянии проверить, является ли отображаемый шаблон страницей, использующей 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' );
9

Другие решения

Вы можете добавить пользовательскую категорию на нужную страницу, а затем использовать идентификатор категории, чтобы отключить 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
0

Я предлагаю добавить его в файл home.php темы, если необходимо. В идеале, просто добавьте его в файл javascript темы или иным образом отделите контент (содержимое домашней страницы) от контроллера (ваш javascript) (например, включая файл JS только на главной странице).

-1
По вопросам рекламы [email protected]