WordPress添加短代码时出现add_shortcode函数未定义错误如何解决
错误原因
- 核心原因是代码放置位置错误、加载时机不对:
add_shortcode()是WordPress短代码API提供的函数,定义在wp-includes/shortcodes.php中,该文件的加载顺序晚于你修改的wp-includes/functions.php核心文件,直接在核心functions.php中调用add_shortcode()时,该函数还未被定义,因此触发致命错误。 - 额外注意:
wp-includes/目录下的所有文件都属于WordPress核心文件,禁止直接修改,后续WordPress版本更新会直接覆盖这些文件,你添加的自定义代码会全部丢失。 - 你提供的代码中API地址格式错误,
https:后缺少双斜杠,后续即使短代码注册成功也会请求失败。
修复方案
- 首先恢复
wp-includes/functions.php的原始内容,删除你自行添加的短代码相关代码,保证核心文件完好。 - 把短代码代码放到正确的加载位置:
- 首选路径:你当前站点激活的主题目录下的
functions.php文件(路径为wp-content/themes/[你的主题名称]/functions.php),将代码追加到该文件末尾即可,主题的functions.php会在WordPress核心所有API加载完成后才加载,add_shortcode()函数此时可正常调用。 - 若怕主题更新覆盖自定义代码,可以创建子主题,在子主题的functions.php中添加代码,或者封装成自定义插件使用,稳定性更高。
- 首选路径:你当前站点激活的主题目录下的
- 修正代码中的API地址错误,修改后的正确代码如下:
function url_id() { $apiUrl = 'https://exampleurl.api.com/exemple123'; $response = wp_remote_get($apiUrl); return wp_remote_retrieve_body($response); } add_shortcode('session_id', 'url_id');
内容的提问来源于stack exchange,提问作者Support_IT
相关产品推荐
相关产品推荐

