• Привет всем.

    Лазил ща долго в MySQL и тестовой версии сайта (поставленной с нуля), вносил изменения и смотрел изменения в таблицах.

    Основной вопрос — в заголовке. Я не понимаю, зачем используется это поле (для инфы или статистики какой — понятно было бы, но при выводе постов на него опирается двиг, как на основное). Как многие уже видели наверное, поле содержит полный текущий url к посту, вида [прописанные_в_wp-config.php параметры url
    #define(‘WP_HOME’,’http://mysite’);
    #define(‘WP_SITEURL’,’http://mysite’);
    либо в настройках Настройки-Общие]\[пост_или_страница(обычно_»?p=»)]\[id_из_этой_таблицы]

    В результате чего, если просто скопировать сайт (переносы через др.средства и плагины не рассм.), скажем на нового хостера или сменить имя домена (было http://my.ru, стало http://my.com), и проделать изменения в
    WP_HOME,WP_SITEURL на новый url — ВСЕ РАВНО получим «покривевший» сайт.

    Ясно, что лечится это либо через какой-то плагин, либо через выполнение запроса на mysql

    UPDATE wp_posts SETguid` = REPLACE (
    guid,
    http://old.domain’,
    http://new.domain’);`

    ВОПРОС:
    Зачем разрабы используют это поле, если для вывода поста известны параметры WP_HOME,WP_SITEURL и значение поля ID из таблицы wp_posts* ??? Достаточно сложить параметры в url и id и выводить посты «не напрягаясь». Зачем этот гимор? И можно ли как-то его избежать?

    Спасибо.

    ——————————
    * wp_post может называться по разному, в основном заголовок меняется всякими плагинами безопасности — mywp_post и тд..

Просмотр 3 ответов — с 1 по 3 (всего 3)
  • цитата от сергея:

    GUID используются только как уникальные идентификаторы записей в RSS-лентах. Строго говоря, это может быть и не ссылка, а любой другой уникальный идентификатор. Было предложение использовать вместо ссылок MySQL-функцию UUID(): http://core.trac.wordpress.org/ticket/6492, однако на тот момент в минимальных требованиях WordPress была версия MySQL 4.0, а UUID() появилась только в 4.1.2.

    забейте, короче.

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Я не понимаю, зачем используется это поле

    RSS-агрегаторы по тегу guid определяют изменения в ленте.

    При изменении структуры ссылок или адреса сайта значение этого поля меняется только для новых записей, для старых остаётся прежним, чтобы в RSS-лентах старые записи не начали внезапно отображаться как новые.

    но при выводе постов на него опирается двиг, как на основное

    Нет, при выводе записей на сайте это поле никак не используется.

    проделать изменения в WP_HOME,WP_SITEURL на новый url — ВСЕ РАВНО получим «покривевший» сайт

    Этих изменений в любом случае недостаточно, они подходят только для быстрого создания отладочной копии сайта. Сссылки могут быть также в контенте, в настройках плагинов и тем и т.д. Для полной замены рекомендуется использовать скрипт Safe Search and Replace или wp-cli.

    Достаточно сложить параметры в url и id и выводить посты «не напрягаясь».

    Движок именно это и делает. Посмотрите функцию get_permalink(), никаких упоминаний поля guid там нет.

    Спасибо за ответы.
    >> Движок именно это и делает.

    Да, но пока WP_HOME,WP_SITEURL не будут совпадать с путями из этого поля вывод будет кривой. Значит, еще что-то есть (тестил без плагинов, тема умолчальная), что учитывается?

    ++
    пойду еще тестить…

Просмотр 3 ответов — с 1 по 3 (всего 3)
  • Тема «Для чего в таблице wp_posts нужно поле guid?» закрыта для новых ответов.