SQL запрос WordPress: изменить даты старых постов пакетно

Ситуация следующая: у сайта поменялся домен, который зарегистрирован позже старого домена, и мне захотелось изменить даты публикации статей сайта, которые появились раньше регистрации нового домена.

То есть, чтобы не было статей, опубликованных раньше, чем зарегистрирован новый домен сайта.

Как поменять даты статей WordPress

Поменять даты статей Вордпресс можно по одному посту, редактируя их или меняя свойства записей на странице постов в админке. Чтобы поменять даты десятков, сотен (тысяч?) статей, сделаю следующее:

  • изменю статус статей, дата которых раньше нужной;
  • с помощью скрипта раскидаю эти статьи по разным датам в диапазоне.

SQL-запрос для изменения статуса постов по условию

Чтобы отделить нужные посты (которые опубликованы до регистрации нового домена), делаю примерно такой SQL-запрос к базе данных (БД) сайта на WordPress:

UPDATE wp_posts SET post_status = 'private' WHERE post_date < '2009-01-01' AND post_status = 'publish';

То есть, устанавливаю статус «личный» (private) для опубликованных (publish) до 1 января 2009 года постов. (Это просто пример. У меня было совсем по-другому: другая дата, и менял наоборот – личные посты на опубликованные. Но это не принципиально.)

Массовое изменение даты постов в WordPress

Для массового (пакетного) изменения даты постов WordPress по определенному условию, не буду изобретать велосипед. Вот здесь есть пример скрипта (php-файла), который случайным образом раскидывает посты по датам в указанном диапазоне.

В моем случае только нужно поменять:

1. $days_minus = 30;

на $days_minus = 450; (или другое количество дней – не больше чем до даты регистрации нового домена).

2. $days_plus = 90;

на $days_plus = 0; (потому что мне не нужна будущая дата публикации).

3. В блоке кода «Обновляем статусы постов» - `post_status`="publish"

на `post_status`="private" (потому что мне нужны только посты со статусом «личные»).

А всё остальное, как написано в примере по ссылке выше. Это работает без проблем.

Это интересно:  Поменять все ссылки на ЧПУ в WordPress (с транслитерацией)

Изменение статуса постов

Ну и, чтобы изменить все приватные посты в статус «опубликовано» нужно снова сделать примерно такой SQL-запрос к БД сайта:

UPDATE wp_posts SET post_status = 'publish' WHERE post_status = 'private'

Плагин WordPress для массового изменения даты постов

Этот пост – дополнение к подробному рассказу «SQL-запрос WordPress: изменить даты старых постов пакетно. Ведь, как известно, всё уже приумано для нас. Поэтому если нет желдания ковыряться в базах данных, настройках в админке и тому подоьбных скучных делах, то можно воспользовать плагинами WordPress, которые ужде заточены на выполнение нужных нам задач.

Чтобы случайным образом (рандомно) поменять даты публикации сразу у множества статей сайта на Вордпресс можно воспользоваться плагином, который так и называется — WP Random Post Dater.

Он не обновлялся своим автором isplash на данный момент уже четыре года, но «зачем изобретать велосипед»? Страница плагина на сайте WordPress находится по этой ссылке.

Меняем даты постов WordPress с помощью плагина

Первым делом, конечно, архивирую файлы сайта и сохраняю базу данных – дело-то не шуточное!

SQL запрос WordPress: изменить даты старых постов пакетно

Плагин я скачал на комп, поэтому иду в меню «Плагины» — «Добавить новый» — «Загрузить плагин».

Выбираю скачанный архив wp-random-post-dater и загружаю на сервер. Затем кнопка «Активировать плагин» (не надо было так подробно?)

Управление плагином изменения даты постов находится в меню: «Настройки» — «Random Post Dater».

Настроек, конечно, маловато…

SQL запрос WordPress: изменить даты старых постов пакетно

Мне нужно раскидать посты между датами 12.10.2015 и 17.11.2016, поэтому попробую использовать «минусовое» количество дней в настройках:

SQL запрос WordPress: изменить даты старых постов пакетно

Earliest Day – это количество дней до «последней статьи», а Latest Day – до самой первой. Найти количество дней между датами несложно с помощью разных онлайн-калькуляторов, например.

Итак…

Это интересно:  Добро пожаловать! Что нового в WordPress 4.2

НЕ получилось! Плагин пишет (Please go back — you cannot either value as lower than 0), что значение не может быть меньше нуля.

Апдейт. Тут я просто протупил. Надо было в моем случае указать такие значения:

SQL запрос WordPress: изменить даты старых постов пакетно

Но здесь нет возможности указать, сколько дней последней записи. Да что же это такое.

Ладно, разберемся позже. А пока искал плагины, нашел вот такой интересный — Republish Old Posts. Он меняет дату случайному старому посту на текущую, создавая видимость обновления блога. Есть разные настройки, которые сейчас попробую на другом сайте.

SQL запрос WordPress: изменить даты старых постов пакетно

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Самое интересное в блоге

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

пять × пять =