Удаление старых версий статей из базы данных WordPress

Чистим базу данных WordPress 2.6 от старых версий статей

Одна из особенностей 2.6 — он хранит старые версии статей в своей базе данных. Это полезно, например, при анализе изменений, внесённых автором в статью.

Честно говоря, мне это никогда нужно не было — лично я считаю, что встраивать в систему контроля версий — это перебор. Впрочем, это лишь моё мнение. Возвращаемся к теме. К сожалению, не предоставляет возможности отключения данной функциональности, но в силу тех или иных обстоятельств бывает нужно удалить старые версии статей (например, для уменьшения объёма базы данных).

Написать плагин, удаляющий старые версии статей, у меня пока еще не дошли руки — всё-таки я на отдыхе :-) Но запрос, который чистит базу данных, я всё же составил:

[-]
View Code MySQL
DELETE `p`, `pm`, `c`, `tr`
    FROM `wp_posts` AS `p`
        LEFT JOIN `wp_postmeta` AS `pm`
            ON `p`.`ID` = `pm`.`post_id`
        LEFT JOIN `wp_comments` AS `c`
            ON `p`.`ID` = `c`.`comment_post_ID`
        LEFT JOIN `wp_term_relationships` AS `tr`
            ON `p`.`ID` = `tr`.`object_id`
    WHERE
        `p`.`post_type` = 'revision';

OPTIMIZE TABLE
    `wp_posts`,
    `wp_postmeta`,
    `wp_comments`,
    `wp_term_relationships`;

Внимание: во всех вышеприведённых запросах предполагается, что используется стандартный префикс таблиц — wp_.

Добавить в закладки

Связанные записи

Автор: Vladimir; опубликовано в: WordPress; метки: MySQL, WordPress
12
Авг
2008

RSS Комментарии к статье «Удаление старых версий статей из базы данных WordPress» (4)  »

  1. [...] Ars Longa, Vita Brevis « Удаление старых версий статей из базы данных WordPress [...]

  2. Есть какая-то настройка для файла wp-config.php, при которой ревизии будут отключены.

  3. Да, действительно… Спасибо, я не знал… Просто она не прописана в дефолтном wp-config.php.

    [-]
    View Code PHP
    $default_constants = array( 'WP_POST_REVISIONS' => true );
    foreach ( $default_constants as $c => $v )
            @define( $c, $v ); // will fail if the constant is already defined
    unset($default_constants, $c, $v);

    Немного криво они это сделали — вместо того, чтобы проверять, определена ли константа, они насильно её определяют, полагаясь на то, что PHP не даёт переопределять уже определённые константы.

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

Оставить комментарий к записи «Удаление старых версий статей из базы данных WordPress»

Вы можете использовать данные тэги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Изображения должны быть включены!

Оставляя комментарий, вы выражаете своё согласие с Правилами комментирования.

Подписаться, не комментируя