• Столкнулся с проблемой

    Есть контент, который содержит строку со ссылкой на видео в ютубе http://www.youtube.com/watch?v=nTDNLUzjkpg

    В шаблоне плагина контент выводится так

    <?php echo apply_filters( 'the_content', $data['meta']->start_page_content ); ?>

    Если открыть страницу обычным GET методом через браузер — ссылка превращается в ютьюб плеер, но когда я загружаю этот же темплейт через AJAX — похоже, что apply_filters не срабатывает — на выходе я получаю просто ссылку.

    Как исправить это?

Просмотр 4 ответов — с 1 по 4 (всего 4)
  • что 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 поста

Просмотр 4 ответов — с 1 по 4 (всего 4)
  • Тема «apply_filters, WP EMBEDS и AJAX не дружат?» закрыта для новых ответов.