我被困在这件事上有一段时间了。我在一个wordpress网站上工作,在那里我从头开始编写主题,我使用php调用来获取我在某些部分所需的wordpress功能。
我正在尝试使用插件,但通过
echo do_shortcode('[STORE-LOCATOR]');就是不管用。即使我切换到默认模板并发布该代码,它仍然不起作用。它简单地回显了"[STORE-LOCATOR]"
任何帮助都将不胜感激。
发布于 2012-09-03 16:58:05
[STORE-LOCATOR]可能不是WordPress意义上的“短码”。
我在不同的插件上遇到了这个,流媒体播放器。它们使用与短码相同的语法,但实际上并非如此。
尝试使用:
echo apply_filters( 'the_content',' [STORE-LOCATOR] ');而不是do_shortcode,看看它是否有帮助。
发布于 2015-09-23 19:42:12
do_shortcode()返回一个字符串。我通过做以下工作来让它工作:
<?php echo do_shortcode(...); ?>发布于 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]');
这看起来是完美的。
https://stackoverflow.com/questions/5282987
复制相似问题