-1

我将此主题安装到一个新的 Wordpress 站点,现在我的主页上出现此错误:

警告:wpdb::prepare() 缺少参数 2,在第 21 行的 /home/content/63/10275663/html/wp-content/themes/welcome_inn/library/tfuse_framework/functions/core.php 中调用并在 / home/content/63/10275663/html/wp-includes/wp-db.php 在第 990 行

这是我安装的主题:http: //themefuse.com/wp-themes-shop/welcome-inn/

我该如何解决这个问题?

4

1 回答 1

3

让我们剖析警告信息。需要注意的三件事;首先,生成警告的函数 (wpdb::prepare),其次,错误发生的位置 ( core.php) 和行引用。让我们看一下 wpdb 类的文档。

这是codex 上的 WPDB 类。在这里搜索,您会看到该prepare()方法正是这样做的——准备查询。浏览文档,您会看到非常重要的一行。

请注意:从 3.5 开始,wpdb::prepare() 强制执行至少 2 个参数。

好的,这是你的错误。这是一个包含更多信息的链接。

不用多说,我几乎可以保证这个主题没有更新到 3.5。我对您的建议是创建一个子主题并在警告消息中提到的行对文件进行调整。通过链接,您会看到它的prepare()工作原理是sprintf这样的,因此更改应该是微不足道的。这是一个例子:

$wpdb->prepare( "SELECT * FROM table WHERE id = $id" );

会变成:

$wpdb->prepare( "SELECT * FROM table WHERE id = %d", $id );

那应该让你理清头绪。提醒一下,不要直接编辑插件文件。这可能会破坏您将来升级主题的能力。

于 2013-01-06T07:34:34.483 回答