Intereting Posts
удалить новое сообщение, если уже есть одно сообщение Может ли is_page () быть объединен с структурой управления переключателем? Сетка сетки «последний» класс для каждого третьего элемента Загрузка исходного кода в пользовательский метабокс Всегда показывать изображение, даже если ссылка нарушена? Разрешить автору копировать, но не редактировать сообщение Плагин библиотеки для WordPress Найти и заменить доменное имя на лету? возможно ли получить имя крюка в add_action? Как отображать результаты внутреннего соединения с пользователем? Создание пользовательских сообщений типа post и привязка их к сообщению из другого настраиваемого типа сообщения Проблема Реализация параллакса в заголовке темы bp-default Добавьте подтверждение captcha в мою собственную форму для публикации в Frontend Переопределить функцию класса плагина Показать сообщение автора для пользовательского типа сообщения в окне редактирования-публикации

Самый быстрый способ перебирать все сообщения?

Мне нужно запустить фоновый процесс в плагине, который выполняет некоторую работу над всеми сообщениями в базе данных человека после установки плагина. Я очень новичок в работе с wordpress, поэтому мои исследования показали, что я могу использовать запрос wp, или я могу использовать «цикл».

Поскольку я переживаю абсолютно каждую скорость сообщения, суть. Мне нужно проверить название, тело, категории, метатеги, опубликовать состояние и пароль. Итак, основываясь на этом, какой из них был бы самым быстрым?

Solutions Collecting From Web of "Самый быстрый способ перебирать все сообщения?"

«Loop» – это просто имя, данное while (have_posts()): the_post(); цикл, используемый для итерации по массиву сообщений, возвращаемых WP_Query() . Другая функция, используемая для запросов к сообщениям, – это функция get_posts (), которая возвращает простой (не расширенный) массив, который вы можете пропустить с помощью цикла foreach .

Я не думаю, что это имеет большое значение; однако, если вы используете get_posts() метод get_posts() немного быстрее и менее интенсивно для памяти, так как он не вызывает setup_postdata() (который заполняет теги шаблона и т. д.) на каждом посту, которое он проходит.

В любом случае, вероятно, у вас на некоторых настройках будет нехватка памяти с тысячами сообщений … Убедитесь, что вы построили резервные копии в этом случае.

«Цикл» – это просто имя, применяемое к циклу foreach, примененному к объекту WP_Query. Поэтому вам нужны оба. Как правило, цикл также включает the_post (), чтобы вы могли использовать теги шаблонов.

Однако есть еще один вариант, который может быть быстрее. В зависимости от того, что вам нужно сделать, вы можете сделать запрос прямой базы данных, чтобы получить только те поля, которые вы хотите отредактировать. Но так как вам также нужны категории и метатеги, это будет сложное соединение. Для упрощения обновлений и обратной совместимости вы также можете использовать обычный WP_Query.