Intereting Posts
add_actions, вызванный функцией functions.php, не возвращает хорошие значения обратный вызов действия, для действия, отправленного, как сообщается с помощью сниффера хука, не вызываемого WordPress Начало сайта Конец и конец Окончание Загрузка медленно Обновление серверов сразу в веб-кластере Веб-сайт не обновляется – нет активных плагинов кешей! Использование WP_Query () в Magento показывает ошибку Тема одной страницы, использующая страницы для содержимого Как: несколько кнопок загрузки WordPress на JQuery на той же странице параметров? Неожиданное поведение от пользовательских таксономий Переписывание URL с пользовательским мета-мета "/% shop_name% / gallery /% gallery%" Разработка WordPress с использованием Docker – как делиться каталогами? Как включить плагин DW Question & Answer в шаблоне главной страницы? Пользовательский фильтр для the_content работает неправильно Выводить уникальные термины таксономии сообщений внутри цикла Изображения, загруженные на внешний интерфейс, отображаются правильно, но не в медиаредакторе.

Массовое обновление сообщений WordPress

Кодеры. Я действительно новичок в WP Code, у меня есть нулевые знания, вот и мы. Я создал плагин (фактически нашел его, но сделал некоторые изменения), который обновляет все мои сообщения wp.

Давайте покажем вам код,

if ( ! class_exists( 'MyPlugin_BulkUpdatePosts' ) ) : class MyPlugin_BulkUpdatePosts { public function __construct() { register_activation_hook( __FILE__, array( $this, 'do_post_bulk_update' ) ); //Run this code only on activation } //Put your code in this function public function do_post_bulk_update() { $posts_to_update = get_posts('numberposts=-1'); //numberposts for post query, "-1" for all posts. foreach ( $posts_to_update as $update_this_post ): //update query goes here endforeach; } } endif; 

Как вы можете видеть, он делает запрос ко всем сообщениям. Основная проблема заключается в том, что у меня есть сообщения 10k +. Но когда я использую это, мой сервер разбивается, он дает «503 Unavailable». Но когда я использую 50-60 сообщений, это работает.

Как я могу сделать эту работу за счет меньших ресурсов?

Solutions Collecting From Web of "Массовое обновление сообщений WordPress"

Одна из особенностей реализации работы WP с базой данных заключается в том, что она всегда перетаскивает все результаты запроса в значения PHP и пространство памяти. Другими словами, очень маловероятно, чтобы какой-либо серьезный запрос был применен в WP, и он не рухнул. Примечательно, что любые плагины, которые занимаются большими запросами (например, резервные копии баз данных), часто пишут свой уровень доступа к базе данных с нуля вместо использования WP API.

Поэтому реализация массовых операций должна быть немного более сложной. Запрос должен быть разделен на более мелкие партии, и их следует обрабатывать последовательно. Вам нужно будет написать эту логику самостоятельно или найти существующее решение. Я думаю, что есть некоторые, но я не использовал никаких общих.

Альтернативный подход, в некоторых случаях, заключается в том, чтобы перехватить логику обновлений для доступа к отдельным сообщениям. Если гигантское одноразовое полное обновление всего не требуется, обновления могут быть распространены с течением времени таким образом, без необходимости использования кода обновления, и не беспокоиться о влиянии ресурсов.

Обновления 10k + требуют времени. В зависимости от того, что вам нужно, вы можете использовать таблицы WordPress, такие как wp_posts используя необработанные SQL-запросы, но я не думаю, что это значительно ускорит процесс.

Поскольку проблема заключается в том, что я думаю, что время – если это одноразовая операция, вы можете решить проблему, изменив max_execution_time в php.ini, давая скриптам гораздо больше времени для обновлений. Для этого вам нужно иметь доступ к конфигурации сервера. Если вы этого не сделаете, вы можете установить серверный пакет (например, XAMPP) на свой локальный компьютер, выполните операцию обновления, а затем переместите обновленную базу данных на ваш производственный сервер.

Существуют и другие решения для изменения этой переменной на удаленных серверах, но обычно они отключены админами.