Удалить определенные посты в Wordpress

O
На сайте с 23.11.2011
Offline
95
309

Есть ли возможность массово удалить определенные посты в WP, например в которых количество символов в посте меньше, скажем, 500 символов?

LC
На сайте с 29.04.2015
Offline
60
#1

Можно, запросом к базе и удалению оттуда записей.

SeVlad
На сайте с 03.11.2008
Offline
1609
#2
Ogneyar:
Есть ли возможность массово удалить определенные посты в WP, например в которых количество символов в посте меньше, скажем, 500 символов?

Есть куча плагинов для массовых операций. Но по кол-ву символов возможно в платных версиях.

LinkerClub:

Можно, запросом к базе и удалению оттуда записей.

Нельзя. Ну т.е. можно если на сайт насрать. Но тогда проще сразу грохуть базу.

Делаю хорошие сайты хорошим людям. Предпочтение коммерческим направлениям. Связь со мной через http://wp.me/P3YHjQ-3.
Gerga
На сайте с 02.08.2015
Offline
94
#3

Ogneyar, для удаления записей есть функция wp_delete_post.

Пример реализации вашей задачи:


<?php
include 'wp-load.php';

$posts = get_posts(array(
'posts_per_page' => 999,
));

foreach ($posts as $post) {
$content = strip_tags(strip_shortcodes($post->post_content));

if (500 > mb_strlen($content)) {
wp_delete_post($post->ID, false); // false заменить на true, если нужно удалить в обход корзины.
}
}

можете создать файл "del.php" в корневой директории WordPress, сохранить в этом файле код и вызвать site.ru/del.php в браузере.

SeVlad
На сайте с 03.11.2008
Offline
1609
#4
Gerga:
для удаления записей есть функция wp_delete_post.

Оно да, но...

По-хорошему ещё надо использовать wp_delete_attachment, но да, в условиях такого не было. :)

И ещё надо понимать что такое (я бы сказал грубое) использование потребует как минимум времени php, а лимитов может не хватить. И тут риски завалить базу вполне реальны.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий