Wordpress 从内容中删除简码
Posted
技术标签:
【中文标题】Wordpress 从内容中删除简码【英文标题】:Wordpress remove shortcode from content 【发布时间】:2012-01-22 18:26:25 【问题描述】:在执行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);
【问题讨论】:
【参考方案1】:一个老问题,但经过一些挖掘和综合答案后,这对我有用:
<?php $content = get_the_content();
echo strip_shortcodes($content);?>
我只是插入画廊,我想将其删除并单独显示。显然,如果您想删除特定的短代码,这可能不是您的解决方案。
【讨论】:
【参考方案2】:我知道这是一个相对古老的问题,但 strip_shortcodes 函数确实有效!
global $post;
echo strip_shortcodes($post->post_content);
如果你问我,最简单的方法..
【讨论】:
但请记住,strip_shortcodes()
将删除 all 短代码,而不仅仅是“图库”短代码。该问题仅涉及“画廊”短代码。【参考方案3】:
奇怪。 remove_shortcode (codex link) 不接受第二个参数。
您返回的是 remove_shortcode 函数的 true 或 false 返回,而不是删除了短代码的内容。
在你的函数的第二个版本中尝试这样的东西:
remove_shortcode('gallery');
return $content;
或者直接放
remove_shortcode('gallery');
在您的functions.php 文件中。之前的海报建议包括 [ ] 的,我猜这是错误的。
【讨论】:
谢谢!我没有返回内容。如果您可以指定要删除的短代码,strip_shortcodes()
将是最佳选择。【参考方案4】:
我认为你应该像这样使用子字符串替换:
function remove_gallery($content)
return str_replace('[gallery]', '', $content);
add_filter( 'the_content', 'remove_gallery', 6);
请记住,这种方法的性能并不好。
更新:可以在function.php中通过添加代码来注销shotcode:
remove_shortcode('[gallery]');
【讨论】:
谢谢!不幸的是,str_replace
方法有效,但取消注册短代码无效。
我能够使用过滤器取消注册,但出现问题。请参阅上面的更新
我认为您所做的不正确。要删除短代码,只需在 function.php 中添加此代码:remove_shortcode('[gallery]');以上是关于Wordpress 从内容中删除简码的主要内容,如果未能解决你的问题,请参考以下文章
WordPress Shortcode(简码)介绍及使用详解
如何从 Wordpress 页面/帖子中获取所有标签作为简码列表?