apply_filters, WP EMBEDS и AJAX не дружат?
-
Столкнулся с проблемой
Есть контент, который содержит строку со ссылкой на видео в ютубе http://www.youtube.com/watch?v=nTDNLUzjkpg
В шаблоне плагина контент выводится так
<?php echo apply_filters( 'the_content', $data['meta']->start_page_content ); ?>Если открыть страницу обычным GET методом через браузер — ссылка превращается в ютьюб плеер, но когда я загружаю этот же темплейт через AJAX — похоже, что apply_filters не срабатывает — на выходе я получаю просто ссылку.
Как исправить это?
-
что apply_filters не срабатывает
apply_filtersи не должен срабатывать — это хук (зацепка), место, код, в который вы можете вклиниться и изменить результат перед записью в БД или перед выводом на экран.
http://codex.wordpress.org/Function_Reference/apply_filters
http://codex.wordpress.org/Function_Reference/add_filterСпасибо, я кодекс читал уже.
функция add_filter — это функция которая вешает хук, или как вы говорите «место, код, в который вы можете вклиниться и изменить результат перед записью в БД или перед выводом на экран.».
и как раз функция apply_filters применяет необходимые мне фильтры (в данном случае стандартные — преобразование ссылки в код YouTube плеера) перед выводом, что я собственно и делаю в коде, но почему-то это не работает
я так понял, что фильтры просто не работают при вызове через AJAX
p.s.
код `global $wp_embed;
echo $wp_embed->run_shortcode( $data[‘meta’]->start_page_content);`также не работает при вызове через AJAX
проблема решена!
<?php global $wp_embed; $wp_embed->post_ID = $data['post_ID']; ?> <?php echo $wp_embed->run_shortcode( $data['taster_meta']->start_page_content ); ?>необходимо только передавать ID поста
Тема «apply_filters, WP EMBEDS и AJAX не дружат?» закрыта для новых ответов.