破坏Wordpress网站的短代码

时间:2011-06-21 19:24:22

标签: php wordpress shortcode

我正在本地版本的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()

6 个答案:

答案 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>然后

之间加上你的短代码(例如:[inline ....])来改变你的模板。

这是放在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文件中,确保在所有吹奏和口哨声都启动并运行时将其加载。