Anonymous24
@Anonymous24

Как полностью отключить черновики auto-draft и draft в WordPress?

Хочу избавиться от draft и auto-draft.
В свой wp-config добавил константы:

/** Пользовательские константы. */
define( 'WPLANG', 'ru_RU' ); // файл локализации.
define( 'DISALLOW_FILE_EDIT', true ); // отключить редактор тем, плагинов из WP. Да - true.
define( 'DISALLOW_FILE_MODS', false ); // отключить редактор, установку, обновление тем, плагинов. Да - true.
define( 'AUTOMATIC_UPDATER_DISABLED', true ); // отключить все обновления. Да - true.
define( 'WP_AUTO_UPDATE_CORE', false ); // отключить обновления ядра. Да - false.
define( 'AUTOSAVE_INTERVAL', 3600 ); // интервал автосохранений. Число в секундах.
define( 'WP_POST_REVISIONS', false ); // отключить черновики. Да - false.
define( 'EMPTY_TRASH_DAYS', false ); // отключить корзину. Да - false.
define( 'MEDIA_TRASH', false ); // отключить корзину для медиафайлов. Да - false.
define( 'IMAGE_EDIT_OVERWRITE', true ); // создавать один набор изображений, удалять изменения при востановлении оригинала. Да - true.
define( 'DISABLE_WP_CRON', true);


Однако, в базе данных наблюдаю строки auto-draft и draft.
Как мне полностью избавиться от Черновиков, чтобы auto-draft не создавался вообще.

P.S Что есть константы, что их нет, черновики всё равно создаются. Всё проверяю на чистой установке на стандартной теме, без установленных плагинов.

P.S Может я что-то не понимаю... Вроде раньше, на старых версиях WP при добавлении константин, у меня пропадала даже сама кнопка «Сохранения поста в черновики».
И в базе данных AUTO_INCREMENT не увеличивался с такой большой скоростью из-за auto-draft.
  • Вопрос задан
  • 188 просмотров
Решения вопроса 1
irtek
@irtek
Wordpress-addicted
Вы отключаете Revisions, т.е. версии поста, которые по умолчанию сохраняются каждые 60 секунд, но auto-draft Черновики создаются всегда.

Обычный черновик, который можно отключить это статус "draft", т.е. когда вы сохранили пост как Черновик, а "auto-draft" это автоматически создаваемая временная запись каждый раз при создании нового объекта поста/страницы.

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

Также и в архитектуре WordPress когда вы создаете Запись или Страницу создается auto-draft до момента его публикации или того же сохранения фиксации как draft черновик. Чтобы подчистить за собой черновик нужно выполнить какую-то функцию, а если у вас отключился интернет или вы закрыли браузер? Это не проконтролировать. Поэтому запись auto-draft останется в любом случае.

Чтобы избавиться от auto-draft записей в базе в WordPress есть функция wp_delete_auto_drafts() которая удалит все auto-draft строки для Записей/Страниц старше 7 дней

Вы можете эту функцию регулярно вызывать, чтобы чистить базу от лишних записей auto-draft черновиков.
Только НЕ добавляйте эту функцию просто в файл functions.php, т.к. если она будет вызываться каждый раз при открытии сайта это значительно снизит производительность. Укажите какое-либо условие запуска для нее, например, когда заходит админ раз в 3 дня и т.п. либо посмотрите тему с CRON и повесьте регулярную чистку каждые 7 дней.

Можете также сделать удаление auto-draft черновиков хоть каждые 10 секунд хоть при каждом открытии админки SQL запросом если критично взяв код запроса из функции
https://developer.wordpress.org/reference/function...
или если Запись никто не редактировал 1 час или при выходе из админки и т.п. варианты.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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