Shortcodes don't work online

时间:2011-08-18 作者:Sagive

我创建了一些已包含到函数中的短代码。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]

我已经创建了许多短代码,尽管大多数都是通过复制/粘贴/优化。。。有人知道为什么会发生这种情况吗?

2 个回复
最合适的回答,由SO网友:Chip Bennett 整理而成

首先,更改此选项:

include TEMPLATEPATH . \'/extras/shortcodes.php\';
。。。对此:

include ( TEMPLATEPATH . \'/extras/shortcodes.php\' );
第二,改变TEMPLATEPATHget_template_directory():

include ( get_template_directory() . \'/extras/shortcodes.php\' );
(The TEMPLATEPATH and STYLESHEETPATH globals are going away eventually.)

第三,确保你namespace your function names 正确地函数名“alertBox()”和“infoBox()”过于泛化。

除此之外,我们可能还需要查看您的错误消息。

SO网友:anmari

嗨,有时这是一个“愚蠢的”错误。查看文件的开头-括号“<;?php”输入是否正确?不管你在哪里都有?

顺便说一下,我总是在本地主机上永久打开wp debug的情况下进行开发和测试。它在清除错误时非常有用。

是的,有时当你玩其他人的插件时,你不得不关掉它,虽然插件没有那么严格,但很值得一试。

结束

相关推荐

shortcode help require

我有一个wordpress功能来显示用户最近的5条推文,这些推文可以通过两种方式显示,一种是通过在我创建的管理菜单中直接输入用户ID,另一种是通过自定义字段,在这里,我想避免自定义字段,并想从短代码开始,我知道我在短代码方面很弱,因为这是我的第二个与之相关的问题,但这个函数需要短代码这是密码function tweet_fetcher(){ global $post; $doc = new DOMDocument(); if((get_option(\'tweetID\'))!=n