是否可以在执行the_content()
之前从内容中删除图库短代码?我搜索了codex并找到了remove_shortcode( $tag )
,但他们没有显示任何示例。
我尝试添加功能
function remove_gallery($content) {
$content .= remove_shortcode('[gallery]');
return $content;
}
add_filter( 'the_content', 'remove_gallery', 6);
它不起作用..
更新
我可以使用下面的代码取消注册短代码,但它也删除了内容
function remove_gallery($content) {
return remove_shortcode('gallery', $content);
}
add_filter( 'the_content', 'remove_gallery', 6);
答案 0 :(得分:6)
我知道这是一个相对陈旧的问题,但strip_shortcodes函数确实有效!
global $post;
echo strip_shortcodes($post->post_content);
如果你问我最简单的方法..
答案 1 :(得分:5)
奇怪。 remove_shortcode(codex link)没有第二个参数。
您将返回remove_shortcode函数的true或false返回,而不是删除短代码的内容。
在那个函数的第二个版本中试试这样的东西:
remove_shortcode('gallery');
return $content;
或者只是把
remove_shortcode('gallery');
在你的functions.php文件中。之前的海报建议包括[],我猜错了。
答案 2 :(得分:2)
我认为你应该像这样使用子字符串替换:
function remove_gallery($content) {
return str_replace('[gallery]', '', $content);
}
add_filter( 'the_content', 'remove_gallery', 6);
请记住,这种方法并没有很好的表现。
更新:您可以通过添加代码取消注册function.php中的镜头代码:
remove_shortcode('[gallery]');
答案 3 :(得分:2)
一个老问题,但经过一些挖掘和一系列答案后,这对我有用:
<?php $content = get_the_content();
echo strip_shortcodes($content);?>
我只是插入画廊,我想删除并单独显示。显然,如果你想删除一个特定的短代码,这可能不是你的解决方案。