我已经坚持了一段时间。我正在一个wordpress网站上工作,我从头开始编写主题,我使用php调用来获取我在某些部分需要的wordpress功能。
我正在尝试使用插件,但是通过
调用它echo do_shortcode('[STORE-LOCATOR]');
只是不工作。即使我切换到默认模板并发布该代码,它仍然无法正常工作。它简单地回应了"[STORE-LOCATOR]"
非常感谢任何帮助。
答案 0 :(得分:41)
[STORE-LOCATOR]
可能不是'短代码'。
我在不同的插件,Stream媒体播放器上遇到过这种情况。它们使用与短代码相同的语法,但实际上并非如此。
尝试使用:
echo apply_filters( 'the_content',' [STORE-LOCATOR] ');
而不是do_shortcode
,看看是否有帮助。
答案 1 :(得分:16)
do_shortcode()
返回一个字符串。
我通过这样做来实现:
<?php echo do_shortcode(...); ?>
答案 2 :(得分:2)
这特定于商店定位器插件,而不是do_shortcode
。
apply_filters
可以是其他插件的可接受的解决方法,但这对Store Locator不起作用;你只会看到一个空的空间和一些控件。这是因为它正在页面/帖子正文中查找该短代码,以确定是否在页面顶部包含其所有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 :(得分:0)
echo do_shortcode('[STORE-LOCATOR][/STORE-LOCATOR]');
答案 4 :(得分:-1)
如果要从头开始编写整个内容,则需要确保创建的功能位于插件的根php文件中。该函数可能看起来像这样,但是您必须使用任何逻辑来细分到商店位置:
<?php
function doCoolStuff () {
$var1 = "value1";
$var2 = "value2";
$output = $var1+$var2;
}
return $output;
}
add_shortcode('SOTRE-LOCATIOR', 'doCoolStuff');
?>
然后在您的模板中输入代码:
<?php echo do_shortcode('[STORE-LOCATOR]');?>
祝您编程愉快,万事如意!