首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >do_shortcode不工作

do_shortcode不工作
EN

Stack Overflow用户
提问于 2011-03-12 22:08:33
回答 6查看 44.2K关注 0票数 19

我被困在这件事上有一段时间了。我在一个wordpress网站上工作,在那里我从头开始编写主题,我使用php调用来获取我在某些部分所需的wordpress功能。

我正在尝试使用插件,但通过

代码语言:javascript
复制
echo do_shortcode('[STORE-LOCATOR]');

就是不管用。即使我切换到默认模板并发布该代码,它仍然不起作用。它简单地回显了"[STORE-LOCATOR]"

任何帮助都将不胜感激。

EN

回答 6

Stack Overflow用户

发布于 2012-09-03 16:58:05

[STORE-LOCATOR]可能不是WordPress意义上的“短码”。

我在不同的插件上遇到了这个,流媒体播放器。它们使用与短码相同的语法,但实际上并非如此。

尝试使用:

代码语言:javascript
复制
echo apply_filters( 'the_content',' [STORE-LOCATOR] ');

而不是do_shortcode,看看它是否有帮助。

票数 50
EN

Stack Overflow用户

发布于 2015-09-23 19:42:12

do_shortcode()返回一个字符串。我通过做以下工作来让它工作:

代码语言:javascript
复制
<?php echo do_shortcode(...); ?>
票数 28
EN

Stack Overflow用户

发布于 2014-02-18 23:55:54

这是特定于Store Locator插件的,而不是一般的do_shortcode

对于其他插件,apply_filters可以是一种可接受的变通方法,但这对Store Locator不起作用;您只会看到一个空白区域和一些控件。这是因为它在页面/post主体中查找该短代码,以确定是否在页面顶部包含其所有的js引用。没有这些引用,什么都不会起作用。请参阅sl-functions.php中的sl_head_scripts函数。

要更改此行为,只需修改该函数以根据页面标题进行匹配即可。在我的实例中,我只希望它出现在“商店”页面上,所以我注释掉了整个$on_sl_page测试,并将其替换为:

$on_sl_page = ( strpos($pagename, 'shop') === 0 );

然后,我使用apply_filters从我的页面调用它,如另一个答案所示:

echo apply_filters( 'the_content','[STORE-LOCATOR]');

这看起来是完美的。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5282987

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档