使用定位模板和快捷代码似乎不起作用

时间:2012-11-19 作者:Rhys Wynne

对于组织而言,我正在尝试划分职能。php文件转换为单独的文件。特别是在单独的文件中定义短代码的函数,短代码在函数中定义。php。下面是函数中的代码。php:-

locate_template( array( \'inc/shortcode-functions.php\' ), true, true ); 
add_shortcode( \'abc-row\', \'echo_abc_row\' );
add_shortcode( \'abc-span\', \'echo_abc_span\' );
我已经从inc/shortcode函数中取出了代码。php中的函数。php,所以看起来确实可以工作,并且在调试模式下不会出现错误,所以我有点困惑。有什么想法吗?

2 个回复
SO网友:Chip Bennett

这个locate_template() 函数用于定位/包括模板文件,而不是功能文件。

仅使用include() 和/或require() 将功能文件包括在functions.php.

SO网友:s_ha_dum

If and only if 您正在寻找一种方法shortcode-functions.php 文件可由我建议的子主题覆盖get_template_part, 像这样:

get_template_part(\'inc/shortcode-functions\');
请注意,没有.php 在最后。将加载您的文件locate_template 将失败。(我刚刚测试过。)两者的区别在于get_template_part 构建文件路径需要做更多的工作。

如果您不想让它被子主题覆盖,只需使用include.

结束

相关推荐

plugin shortcode output

我有一个使用此短代码的插件:[daisy]此短代码的html输出为:<a class=\"clickable\">Click Here</a> 如果我使用快捷码来触发插件,那么插件工作得很好。它也适用于此:<?php echo do_shortcode(\'[daisy]\'); ?>通常,它还应与<a class=\"clickable\">Click Here</a> 但它不起作用,链接出现了,但如果我点击它,什么都不会发生