sevki
  • 0
Новичок

Карта сайта WordPress для MSSQL

  • 0

Кто-нибудь знает правильный плагин карты сайта для WordPress, который работает с MS Sql?

Вот ошибка, которую я получаю:

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 XML Sitemaps… есть идеи?

Share
  1. Хм… WordPress работает на MySQL… все, что связано с MS SQL, потребует совершенно отдельной серверной архитектуры… и это даже не касается карт сайта, которые имеют дело со страницами вашего сайта, которые будут поступать из WordPress MySQL. база данных… так что именно вы спрашиваете?

    • 0
    • Просьба уточнить? WordPress работает с базой данных через свои функции API ( $wpdb ). Любой плагин, который правильно использует API, должен работать, даже если вы используете WordPress, настроенный для работы на базе данных, отличной от используемой по умолчанию.

      • 0
    • Укажите производную версию WordPress, которую вы используете для поддержки MSSQL (производная версия — это все, от небольшого дополнения до исправления или полного форка). Просто укажите URL-адрес, откуда вы загрузили WordPress с MSSQL, если вы не понимаете, что я имею в виду.

      • 0
  2. Когда я смотрю на ваше сообщение об ошибке, у меня создается впечатление, что вы используете WordPress с базой данных MS SQL, а не с базой данных MySQL. Это хорошо, но это несколько усложняет задачу поддержки, поскольку две платформы баз данных на самом деле разные.

    Например, вы получаете сообщение об ошибке, в котором говорится, что типы данных text и varchar несовместимы, однако оператор SQL, который пытается выполнить подключаемый модуль, использует оператор равенства.

    По сути, поля meta_key и являются типами данных, но значения, которые вы сопоставляете с ( и ), имеют тип. Вы не можете использовать простой оператор равенства, чтобы проверить, похожи ли они.meta_value text _wp_old_slug sitemap varchar

    Учитывая, что это проблема, с которой вы столкнетесь практически с любым подключаемым модулем, который напрямую обращается к базе данных WP, я собираюсь самым решительным образом порекомендовать вам перенести свой сайт на настройку MySQL. MySQL бесплатен, и если вы уже используете PHP на своем сервере, вы также сможете запустить 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 SQL, то я ничего не могу предложить. Любой подключаемый модуль рискует напрямую взаимодействовать с базой данных (т. е. пытаться выполнить запрос к базе данных, не пропуская его через уровень $wpdb абстракции). Поэтому, если вы не хотите нанять разработчика, чтобы сначала просмотреть код, или просто узнать методом проб и ошибок, какие плагины будут работать, то вам, как правило, не повезло.

    • 0

Оставить ответ

You must login to add an answer.