我希望能够从the_content中删除wordpress gallery短代码,但在循环之外再次使用短代码。
我正在使用:
在functions.php中删除短代码add_filter('the_content', 'strip_shortcodes');
然后在我的模板循环外使用它:
<?php echo do_shortcode('[gallery"]'); ?>
除非它删除所有短代码,包括我需要在帖子中使用的字幕短代码,否则这样做很有效。
有没有人有任何想法如何解决这个问题?
提前致谢。
答案 0 :(得分:4)
// Remove gallery from content
add_filter('the_content', 'strip_shortcode_gallery');
function strip_shortcode_gallery( $content ) {
preg_match_all( '/'. get_shortcode_regex() .'/s', $content, $matches, PREG_SET_ORDER );
if ( ! empty( $matches ) ) {
foreach ( $matches as $shortcode ) {
if ( 'gallery' === $shortcode[2] ) {
$pos = strpos( $content, $shortcode[0] );
if ($pos !== false)
return substr_replace( $content, '', $pos, strlen($shortcode[0]) );
}
}
}
return $content;
}