我创建了一些已包含到函数中的短代码。php
这是短代码。我使用过的php代码:
// alert box
function alertBox($atts, $content = null) {
extract(shortcode_atts(array(
"bgcolor" => \'#ffffff\'
), $atts));
return \'<div class="alertBox" style="background:\'.$bgcolor.\'">\'.$content.\'</div>\';
}
add_shortcode("alertbox", "alertBox");
/*** info box ***/
function infoBox($atts, $content = null) {
extract(shortcode_atts(array(
"bgcolor" => \'#ffffff\'
), $atts));
return \'<div class="infoBox" style="background:\'.$bgcolor.\'">\'.$content.\'</div>\';
}
add_shortcode("infobox", "infoBox");
所有这些都包含在功能中。php使用此行:
include TEMPLATEPATH . \'/extras/shortcodes.php\';
在处理WAMP(脱机)短代码时,效果很好,但联机WordPress只会输出如下实际标记:
[alertbox]Sometext[/alertbox]
我已经创建了许多短代码,尽管大多数都是通过复制/粘贴/优化。。。有人知道为什么会发生这种情况吗?
最合适的回答,由SO网友:Chip Bennett 整理而成
首先,更改此选项:
include TEMPLATEPATH . \'/extras/shortcodes.php\';
。。。对此:
include ( TEMPLATEPATH . \'/extras/shortcodes.php\' );
第二,改变
TEMPLATEPATH
到
get_template_directory()
:
include ( get_template_directory() . \'/extras/shortcodes.php\' );
(
The TEMPLATEPATH
and STYLESHEETPATH
globals are going away eventually.)
第三,确保你namespace your function names 正确地函数名“alertBox()”和“infoBox()”过于泛化。
除此之外,我们可能还需要查看您的错误消息。