Работа с записями на WordPress

Допустим на вашем блоге большое количество записей, а Вам нужно сделать изменения к записям всего блога. Внесение изменений вручную занимает много времени и имеет вероятность большого количества ошибок. В таком случае лучше воспользоваться запросами, которые непосредственно воздействуют на бузу данных MySQL WordPress.

Как добавить произвольное поле ко всем записям и страницам

Для добавления произвольного поля ко всем записям и страницам нужно заменить «UniversalCutomField» на реальное имя, а «MyValue» - на значение поля.


INSERT INTO wp_postmeta (post_id, meta_key, meta_value)
SELECT ID AS post_id, 'UniversalCustomField'
AS meta_key 'MyValue AS meta_value FROM wp_posts
WHERE ID NOT IN (SELECT post_id FROM wp_postmeta WHERE meta_key = 'UniversalCustomField');


Для вставления произвольного поля только в записи, применяем запрос:


INSERT INTO wp_postmeta (post_id, meta_key, meta_value)
SELECT ID AS post_id, 'UniversalCustomField'
AS meta_key 'MyValue AS meta_value
FROM wp_posts WHERE ID NOT IN
(SELECT post_id FROM wp_postmeta WHERE meta_key = 'UniversalCustomField')
`` AND post_type = 'post';


А для страницы, используем следующий запрос:


INSERT INTO wp_postmeta (post_id, meta_key, meta_value)
SELECT ID AS post_id, 'UniversalCustomField'
AS meta_key 'MyValue AS meta_value
FROM wp_posts WHERE ID NOT IN
(SELECT post_id FROM wp_postmeta WHERE meta_key = 'UniversalCustomField')
AND `post_type` = 'page';


Как запретить комментировать старые записи
Изменение значения для comment_status позволяет изменять возможность комментирования записи:
open — можно комментировать;
closed — комментировать нельзя;
registered_only — комментировать могут только зарегистрированные пользователи.
Покажем на примере (используется 2010-01-01):


UPDATE wp_posts SET comment_status = 'closed' WHERE post_date < '2010-01-01' AND post_status = 'publish';


Как удалить записи старше «Х» дней
Чтобы выбрать записи, используйте данный запрос. Замените «Х» на нужное количество дней:


SELECT * FROM `wp_posts`
WHERE `post_type` = 'post'
AND DATEDIFF(NOW(), `post_date`) > X


Чтобы удалить записи, которые старше «Х» дней, применяем следующий запрос. Вместо «Х» ставим нужное количество дней:


DELETE FROM `wp_posts`
WHERE `post_type` = 'post'
AND DATEDIFF(NOW(), `post_date`) > X


Полезные ссылки: hyundai в Киеве

Категория: Wordpress Теги: 

Популярные записи:

Удалите ненужные изображения / уменьшенные размеры Удалите ненужные изображения / уменьшенные размеры
WordPress: отображение случайных комментариев WordPress: отображение случайных комментариев
Блокирование пиратских атак Блокирование пиратских атак
Публикация записей в rss с задержкой Публикация записей в rss с задержкой
Яндекс.Метрика