有人知道一个适合于WordPress的站点地图插件吗?
下面是我遇到的错误:
Array (
[0] => Array (
[0] => 42000
[SQLSTATE] => 42000
[1] => 402
[code] => 402
[2] => [Microsoft][SQL Server Native Client 10.0][SQL Server]The data types text and varchar are incompatible in the equal to operator.
[message] => [Microsoft][SQL Server Native Client 10.0][SQL Server]The data types text and varchar are incompatible in the equal to operator.
)
)
WordPress database error: [1]
SELECT post_id FROM wp_postmeta, wp_posts WHERE ID = post_id AND meta_key = '_wp_old_slug' AND meta_value='sitemap'我在Google站点地图插件中得到了这个错误..。有什么想法吗?
发布于 2010-09-21 22:20:35
当我查看您的错误消息时,我会得到这样的印象:您是在MySQL数据库而不是MySQL数据库上运行MySQL。这很好,但从支持的角度来看,这让事情变得有点棘手,因为这两个数据库平台实际上是不同的。
例如,您得到的错误消息是,text和varchar数据类型不兼容,但是插件试图运行的SQL语句使用的是相等操作符。
基本上,meta_key和meta_value字段是text数据类型,但是您要匹配的值(_wp_old_slug和sitemap)是varchar。您不能使用简单的相等操作符来检查它们是否相似。
考虑到这是一个问题,您将面临几乎任何插件,直接访问WP数据库,我将以最强烈的术语,建议您将您的站点迁移到一个MySQL设置。MySQL是免费的,如果您已经在服务器上运行MySQL,您也应该能够运行MySQL。
但是,您可以重写插件中进行数据库调用以将搜索字符串转换为文本的部分:
SELECT post_id FROM wp_postmeta, wp_posts WHERE ID = post_id AND meta_key = CAST('_wp_old_slug' AS text) AND meta_value=CAST('sitemap' AS text)请注意,在SQL语句中动态重铸变量类型不是我的优点,在将其部署到生产环境中之前,您应该在开发系统上测试这个解决方案。我不能保证!
至于在MS环境中工作的另一个插件,我不能提供任何建议。任何插件都有直接与数据库交互的风险(即尝试在数据库上运行查询而不通过$wpdb抽象层)。所以,除非你想雇一个开发人员先看一看代码,或者只是通过尝试和错误来了解哪些插件可以工作,否则你通常是运气不好。
https://wordpress.stackexchange.com/questions/2066
复制相似问题