我想在我的博文中删除[gallery]
个简码。我发现的唯一解决方案是我添加到我的函数中的过滤器。
function remove_gallery($content) {
if ( is_single() ) {
$content = strip_shortcodes( $content );
}
return $content;
}
add_filter('the_content', 'remove_gallery');
删除包含[caption]
所有图片所需的短代码。如何指定要排除或包含的单个短代码?
答案 0 :(得分:13)
要仅删除图库短代码,请注册一个返回空字符串的回调函数:
add_shortcode('gallery', '__return_false');
但这只适用于回调。要静态地执行此操作,您可以暂时更改wordpress的全局状态以欺骗它:
/**
* @param string $code name of the shortcode
* @param string $content
* @return string content with shortcode striped
*/
function strip_shortcode($code, $content)
{
global $shortcode_tags;
$stack = $shortcode_tags;
$shortcode_tags = array($code => 1);
$content = strip_shortcodes($content);
$shortcode_tags = $stack;
return $content;
}
用法:
$content = strip_shortcode('gallery', $content);
答案 1 :(得分:0)
对我来说,曾与:
add_shortcode('shortcode_name', '__return_false');
如果我尝试strip_shortcode,它们将删除所有shortocodes并更改最终结果
答案 2 :(得分:-1)
如果您只想获取内容,不包括任何短代码,请尝试类似
的内容global $post;
$postContentStr = apply_filters('the_content', strip_shortcodes($post->post_content));
echo $postContentStr;