我正在本地版本的Wordpress网站上为Wordpress创建新的短代码。
在functions.php中,我正在添加例如:
function shortTest() {
return 'Test for shortcodes ';
}
add_shortcode('shortTestHTML', 'shortTest');
仅添加该功能是正常的,但是当我添加add_shortcode()部分时,我遇到了一个重大问题。
它以某种方式破坏了某些东西,我得到了500个错误,这意味着我甚至无法在本地加载我的网站。
任何想法???
非常感谢!
编辑:
来自PHP错误日志: [21-Jun-2011 19:02:37] PHP致命错误:在第4505行/Users/jonas/Sites/jll/wp-includes/functions.php中调用未定义函数add_shortcode()
答案 0 :(得分:6)
1)确保您已在某处包含shortcodes.php
文件(例如,在wp-load.php
或其他更合适的地方)。
require_once( ABSPATH . '/wp-includes/shortcodes.php' );
2)确保您的安装中存在此文件(我认为您有其他错误)。
3)你从哪里调用这个函数(我看到它来自functions.php
,但哪个地方)?这里可能存在的问题 - 在functions.php
之前加载shortcodes.php
,如果在加载add_shortcode
之前使用shortcodes.php
函数,则很可能会看到此错误。仔细检查那个地方的代码 - 也许可以将呼叫转移到add_shortcode
到另一个地方。
答案 1 :(得分:2)
在functions.php中添加这个你说的吗?我不知道这一点,我这样做的方法是在wp-content / plugins文件夹中创建一个文件夹,例如shortcodetest。
在此文件夹中创建一个shortcodetest.php
文件。
在该文件中,您基本上编写了代码:
<?php
/*
Plugin Name: ShortCodeTest
Plugin URI: http://www.example.net
Description: Print a test message
Version: 0.1
Author: anonymous
Author URI: http://www.example.net
*/
add_shortcode('shortcodetest', 'shortcodetest_function');
function shortcodetest_function() {
return "test of shortcode";
}
&GT;
然后您以管理员身份登录,您将看到一个插件ShortCodeTest,将其激活。然后你可以在帖子中使用短代码。
请注意,评论很重要......它们会显示在插件说明中。
答案 2 :(得分:2)
提及functions.php
不在wp-include/ directory
它位于:wp-content/themes/<your-theme-name>/functions.php
答案 3 :(得分:1)
我有办法执行它们,但它有点奇怪:)
你需要在<shortcode></shortcode>
然后
这是放在function.php。
末尾的函数function parse_execute_and_echo_shortcode($_path) {
$str = file_get_contents($_path);
while (strrpos($str, "<shortcode>")) {
$beginShortcode = strrpos($str, "<shortcode>");
$endShortcode = strrpos($str, "</shortcode>");
$shortcode = substr($str, $beginShortcode + 11, $endShortcode - ($beginShortcode+11));
$shortcode = do_shortcode($shortcode);
$str = substr_replace($str, $shortcode, $beginShortcode, $endShortcode + 12);
}
echo $str;
}
然后,您可以致电function parse_execute_and_echo_shortcode
并为其提供包含短代码的文件的路径。
希望可以帮助某人
答案 4 :(得分:0)
检查你的error.log文件(它应该在你的apache日志文件夹中)。
它可能与add_shortcode不存在作为函数有关。
答案 5 :(得分:0)
将您的短代码放入/wp-includes/shortcodes.php
文件中,确保在所有吹奏和口哨声都启动并运行时将其加载。