TTA
@TTA
Мутировавший технарь :)

Как удалить/добавить пост в Wordpress и его метаданные с помощью SQL запроса?

Салют! Попробовал стандартным api wp - получилось очень медленно (записей много очень). Помогите с запросами. Нужно:
1. удалить кастомный пост обвешаный таксономиями и кастом филдами. Я так понимаю там какие то хвосты и метаданные надо удалить.
2. добавить кастомный пост обвешаный таксономиями и кастом филдами.
  • Вопрос задан
  • 750 просмотров
Решения вопроса 1
TTA
@TTA Автор вопроса
Мутировавший технарь :)
В общем спасибо всем местным гурям, сделал сам. Добавление/обновление 1500 постов со всякими проверками средствами wp api (wp_insert_post/wp_update_post) - заняло примерно 10 минут. Через $wpdb->query - около секунды. Может кому пригодится:
//создаем уникальный индекс вместо обычного
$wpdb->query('ALTER TABLE wp_posts DROP INDEX post_name');
$wpdb->query('ALTER TABLE wp_posts ADD UNIQUE post_name (post_name)');
$q ="INSERT INTO wp_posts SET  post_parent = 0, post_type = 'mytype', post_author = 1, post_content ='".$content_field."', post_title='".$content_title."', post_name= '".$content_name."' ON DUPLICATE KEY UPDATE post_name= '".$content_name."',  post_content = '".$content_field."', post_title='".$content_title."'";
$wpdb->query($q);
 $post_id = $wpdb->get_var("SELECT ID FROM wp_posts wp WHERE post_name = '".$content_name."'");
//Возвращаем обычный индекс
$wpdb->query('ALTER TABLE wp_posts DROP INDEX post_name');
$wpdb->query('ALTER TABLE wp_posts ADD INDEX post_name (post_name)');
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
HeadOnFire
@HeadOnFire
PHP, Laravel & WordPress Evangelist
И зачем вам эти сложные запросы, сделайте простенький аякс-интерфейс и вызывайте удаление-добавление нативными методами по одному, а не все сразу.
Ответ написан
dimasmagadan
@dimasmagadan
Для этого придумали https://wp-cli.org/
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы