仅筛选内容中的文本(_C)

时间:2016-04-24 作者:Mohamed Rihan

我试图只过滤其中的文本get_the_content 对于我的主页,但它也包括我的短代码,因为在该页面的第一行谷歌地图第二行文本框中,我使用的是visual composer页面生成器。

My code

$content = get_the_content();
$content = apply_filters(\'the_content\', substr(get_the_content(), 0, 60) );
$content = str_replace(\']]>\', \']]>\', $content);
echo $content

My result

[vc\\u行][vc\\u列][vc\\u gmaps链接=”;#E-8\\u JTNDAWZYY1LJTIWC3JJ

屏幕截图

enter image description here

2 个回复
SO网友:Tim Malone

根据你澄清了你想要达到的目标的评论,你似乎想显示你帖子的前60个字符,不包括任何短代码。

为此,您可以使用strip_shortcodes() 作用用它重写后,您的代码将如下所示:

$content = strip_shortcodes(get_the_content());
$content = apply_filters(\'the_content\', substr($content, 0, 60) );
$content = str_replace(\']]>\', \']]>\', $content);
echo $content;
我们在这里所做的就是运行内容(从get_the_content()) 通过strip_shortcodes() 在对前60个字符应用Wordpress过滤器之前。

根据您想要实现的目标以及您是否依赖任何其他插件为您修改此内容,您实际上可以跳过apply_filters() 也要打电话-在这种情况下,您需要做的就是设置$contentsubstr() 你想要的。

SO网友:Patidar Sam

您可以使用

do_shortcode(get_the_content($id)); 
相反

相关推荐

Changing slug of all posts

我有一个网站,有十几种自定义帖子类型。我想更改默认的帖子类型,使其URL有一段/news/。在我的函数文件中,我有: add_action( \'init\', \'change_post_object\' ); // Change dashboard Posts to News function change_post_object() { $get_post_type = get_post_type_object(\'post\');&#x