👍 Научим бесплатно правильно создавать сайты на WordPress. Подробнее →
При выводе цитаты поста с помощью функции the_excerpt текст цитаты выводится вместе с исходными кодами шорткодов, что выглядит не очень красиво. Можно исключить вывод текста любого шорткода в содержимом цитаты с помощью простого фильтра.
Например, нужно исключить вывод текста шорткода
[/embed]
из текста цитаты. Для этого добавьте в файл functions.php:
add_filter( 'the_excerpt', 'remove_embed_shortcode_from_excerpt' ); function remove_embed_shortcode_from_excerpt( $excerpt ) { return preg_replace ('/<a href="http://]*](.*)">]*](.*)</a>/', '$1', $excerpt); }
По аналогии можно создать фильтры и для других шорткодов. Фильтр для шорткода
[img]
add_filter( 'the_excerpt', 'remove_img_shortcode_from_excerpt' ); function remove_img_shortcode_from_excerpt( $excerpt ) { return preg_replace ('/[img[^]]*](.*)[/img]/', '$1', $excerpt); }
Подобные фильтры будут полезны, если вы выводите цитаты из предыдущих и следующих постов, цитаты на главной странице блога.