从the_content中剥离WordPress库短代码并在循环外部使用

时间:2014-03-06 14:16:10

标签: wordpress gallery shortcode caption

我希望能够从the_content中删除wordpress gallery短代码,但在循环之外再次使用短代码。

我正在使用:

在functions.php中删除短代码
add_filter('the_content', 'strip_shortcodes');

然后在我的模板循环外使用它:

<?php echo do_shortcode('[gallery"]'); ?>

除非它删除所有短代码,包括我需要在帖子中使用的字幕短代码,否则这样做很有效。

有没有人有任何想法如何解决这个问题?

提前致谢。

1 个答案:

答案 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;
}