Intereting Posts
Разрешить символы UTF-8 в части URL-адреса пользователя URL-адреса Отображать выбор нескольких вариантов выбора в списке пули Фильтровать список правил, основанных на возможностях Игнорировать последние два сообщения Запланированная публикация не работает Стандартный WP_Query не возвращает результаты Почему мои пользовательские поисковые запросы перестали работать после изменения URL-адресов / обновления WordPress? wp_insert_term не работает с таксономией пользовательского типа сообщения Можно ли фильтровать сообщения или категории, которые пользователи XML-RPC видят в своем мобильном приложении? do_action () подключиться к загрузке (страница) Функция PHP показывает неправильное время в WordPress Как сделать плагин для плагинов в WPMU Получите пост, ближайший к сегодняшнему дню Webdav с permalink в WordPress v3.3.1 Элемент меню, добавленный в фильтр wp_nav_menu_items, никогда не выделяется

Изменения в WordPress SimplePie

Я использую функцию fetch_feed (), предусмотренную в WordPress, для создания объекта-объекта SimplePie.

Код из WP следующий:

function fetch_feed($url) { require_once (ABSPATH . WPINC . '/class-feed.php'); $feed = new SimplePie(); $feed->set_sanitize_class( 'WP_SimplePie_Sanitize_KSES' ); // We must manually overwrite $feed->sanitize because SimplePie's // constructor sets it before we have a chance to set the sanitization class $feed->sanitize = new WP_SimplePie_Sanitize_KSES(); $feed->set_cache_class( 'WP_Feed_Cache' ); $feed->set_file_class( 'WP_SimplePie_File' ); $feed->set_feed_url($url); $feed->set_cache_duration( apply_filters( 'wp_feed_cache_transient_lifetime', 12 * HOUR_IN_SECONDS, $url ) ); do_action_ref_array( 'wp_feed_options', array( &$feed, $url ) ); $feed->init(); $feed->handle_content_type(); if ( $feed->error() ) return new WP_Error('simplepie-error', $feed->error()); return $feed; } 

Как я могу изменить, какие элементы HTML удаляются во время импорта фида?

SimplePie в своей документации говорит, что существует функция strip_htmltags (), но я не уверен, как я могу использовать ее в контексте WordPress. http://simplepie.org/wiki/reference/simplepie/strip_htmltags

Вот что я пробовал, но не работал:

 function wpse87359_feed_options( $feed) { $feed->strip_htmltags(array_merge($feed->strip_htmltags, array('h1', 'a', 'img','em'))); } add_action( 'wp_feed_options', 'wpse87359_feed_options' ); 

Solutions Collecting From Web of "Изменения в WordPress SimplePie"

SimplePie в WordPress использует встроенную дезинфекцию kses, а не SimplePie. Вместо этого вы можете фильтровать на wp_kses_allowed_html и добавлять туда свои элементы. Имейте в виду, что это произойдет для всех сообщений, а не только через SimplePie.

 function se87359_add_allowed_tags($tags) { $tags['mytag'] = array('myattr' => true); return $tags; } add_filter('wp_kses_allowed_html', 'se87359_add_allowed_tags'); 

Если вы хотите сделать это только для фидов, то должно работать следующее:

 /** * Add in our filter when we run fetch_feed() */ function se87359_add_filter( &$feed, $url ) { add_filter('wp_kses_allowed_html', 'se87359_add_allowed_tags'); } add_filter( 'wp_feed_options', 'se87359_add_filter', 10, 2 ); function se87359_add_allowed_tags($tags) { // Ensure we remove it so it doesn't run on anything else remove_filter('wp_kses_allowed_html', 'se87359_add_allowed_tags'); $tags['mytag'] = array('myattr' => true); return $tags; }