Intereting Posts
Отфильтровать вывод WP_Query перед его доступом (pre_get_posts)? Разрешить дублирование ссылок для ссылок в разных категориях Показывать приветствия первым посетителям? 404 Ошибки из-за тегов, преобразованных в категории Как я могу безопасно увеличить лимит символов для почтовых паролей? register_nav_menus, затем программно создавать меню get_categories список для детей с детьми автоматические тесты в качестве пользователя? Установка wordpress с использованием композитора на определенном языке Передача данных пользовательского поля в виде массива, который необходимо сохранить (результат пользовательского массива несовместим) Динамическая репликация пользовательского метабокса в настраиваемом типе сообщений используя get_option для добавления другого js add_action () в инструкции switch $ wpdb возвращает повторяющиеся сообщения Почему полностью нормальный цикл дает ошибки смещения и ошибки максимального времени выполнения?

add_filter для определенных страниц

Можно ли добавить этот фильтр

add_filter("the_content", "magicalender_get_event_page");

Но только для одной конкретной страницы, например

if($post->post_name == "magicalenderpage")

Если я поставлю оператор if внутри функции, то на любых других страницах содержимое не будет отображаться – и с последующим заявлением else, которое будет отгонять содержимое страницы, в противном случае я столкнулся с проблемами, когда это мешает другим плагинам, которые также делать вещи с

add_filter("the_content", "foo");

Функция magicalender_get_event_page выглядит следующим образом

 function magicalender_get_event_page(){ global $wpdb; global $post; if($post->post_name == "magicalenderpage"){ echo "<div class=\"magi_calender\">"; for($i = 0; $event = $wpdb->get_row("SELECT * FROM ".$wpdb->prefix."magicalender", ARRAY_A, $i); $i++){ echo" <div class=\"event\"> <h1>".$event['event']."</h1> <h2>".date('m/d/Y', strtotime($event['dmy']))."</h2> <div>".str_replace("&amp;", "&", str_replace("'", "'", str_replace(""", "\"", $event['desc'])))."</div> </div> "; } echo "</div>"; $o = $wpdb->get_row("SELECT * FROM ".$wpdb->prefix."magioptions", ARRAY_A); echo" <script type=\"text/javascript\"> var priority = '".$o['dm']."'; var customDays = new Array('".$o['monday']."', '".$o['tuesday']."', '".$o['wednesday']."', '".$o['thursday']."', '".$o['friday']."', '".$o['saturday']."', '".$o['sunday']."'); var customMonths = new Array('".$o['january']."', '".$o['february']."', '".$o['march']."', '".$o['april']."', '".$o['may']."', '".$o['june']."', '".$o['july']."', '".$o['august']."', '".$o['september']."', '".$o['october']."', '".$o['november']."', '".$o['december']."'); var customMonthsShort = new Array('".$o['jan']."', '".$o['feb']."', '".$o['mar']."', '".$o['apr']."', '".$o['ma']."', '".$o['jun']."', '".$o['jul']."', '".$o['aug']."', '".$o['sep']."', '".$o['oct']."', '".$o['nov']."', '".$o['dec']."'); jQuery(\".magi_calender\").magiCalender(priority, customDays, customMonths, customMonthsShort); </script> "; } else{ return $content; } } 

Solutions Collecting From Web of "add_filter для определенных страниц"

Полезно размещать весь ваш фильтр и код обратного вызова, а не просто фрагменты.

Но я подозреваю, что проблема в том, что вы не возвращаете $the_content за пределами своего условного $the_content , например:

 function magicalendar_get_event_page( $content ) { if ( $post->post_name == 'magicalendarpage' ) { // Do something to $content return $content; } } add_filter( 'the_content', 'magicalendar_get_event_page' ); 

Если это так, переместите возврат за пределы условного:

 function magicalendar_get_event_page( $content ) { if ( $post->post_name == 'magicalendarpage' ) { // Do something to $content } return $content; } add_filter( 'the_content', 'magicalendar_get_event_page' ); 

Чтобы узнать, почему / как это мешает другим фильтрам на 'the_content' , нам, вероятно, нужно увидеть ваш код.

РЕДАКТИРОВАТЬ

По крайней мере, две проблемы:

  1. Вы не передаете $content в качестве аргумента для обратного вызова фильтра
  2. НЕ ВЫХОДА ФИЛЬТРА ECHO! Верни это. Это, скорее всего, вызывает проблемы с другими фильтрами, применяемыми к the_content .

Если вам необходимо отфильтровать_содержание специально до или после других фильтров, добавьте приоритет к add_filter() . 10 по умолчанию. Используйте меньшее число для фильтрации раньше ; используйте более высокое число для фильтрации позже .