首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于MSSQL的WordPress站点地图

用于MSSQL的WordPress站点地图
EN

WordPress Development用户
提问于 2010-09-21 18:41:03
回答 1查看 455关注 0票数 0

有人知道一个适合于WordPress的站点地图插件吗?

下面是我遇到的错误:

代码语言:javascript
复制
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站点地图插件中得到了这个错误..。有什么想法吗?

EN

回答 1

WordPress Development用户

发布于 2010-09-21 22:20:35

当我查看您的错误消息时,我会得到这样的印象:您是在MySQL数据库而不是MySQL数据库上运行MySQL。这很好,但从支持的角度来看,这让事情变得有点棘手,因为这两个数据库平台实际上是不同的。

例如,您得到的错误消息是,textvarchar数据类型不兼容,但是插件试图运行的SQL语句使用的是相等操作符。

基本上,meta_keymeta_value字段是text数据类型,但是您要匹配的值(_wp_old_slugsitemap)是varchar。您不能使用简单的相等操作符来检查它们是否相似。

考虑到这是一个问题,您将面临几乎任何插件,直接访问WP数据库,我将以最强烈的术语,建议您将您的站点迁移到一个MySQL设置。MySQL是免费的,如果您已经在服务器上运行MySQL,您也应该能够运行MySQL。

但是,您可以重写插件中进行数据库调用以将搜索字符串转换为文本的部分:

代码语言:javascript
复制
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抽象层)。所以,除非你想雇一个开发人员先看一看代码,或者只是通过尝试和错误来了解哪些插件可以工作,否则你通常是运气不好。

票数 1
EN
页面原文内容由WordPress Development提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://wordpress.stackexchange.com/questions/2066

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档