WordPress - Обновление всех существующих записей одновременно

3 июл. 2014 г., 07:52:02
Просмотры: 1.3K
Голосов: 0

Есть ли способ перебрать все существующие опубликованные записи на сайте WP, чтобы имитировать нажатие кнопки "Обновить" для каждой записи по очереди? Это разовое действие. У меня сайт с тысячами записей, и нет возможности вручную обновлять каждую из них.

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

Спасибо

3
Комментарии

Что именно ты хочешь изменить во всех записях?

Sudeep Acharya Sudeep Acharya
3 июл. 2014 г. 08:13:45

Похоже, тебе следует фильтровать содержимое записей с помощью фильтра post_content, а не фактически обновлять содержимое записей. Если бы я установил плагин, который начал редактировать каждую мою запись, я был бы недоволен. Кроме того, перебор всех записей на сайте — это потенциально медленный процесс, который с большой вероятностью приведёт к превышению времени выполнения на больших сайтах или на shared-хостингах.

John Blackbourn John Blackbourn
3 июл. 2014 г. 12:19:57

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

bueltge bueltge
16 янв. 2019 г. 13:47:06
Все ответы на вопрос 1
0

Я не уверен, сработает ли это, но вы можете попробовать запустить wp_update_post() для всех затронутых записей. Это вызовет хук save_post.

Согласно Codex:

В отличие от wp_insert_post(), необходимо передать только ID записи для обновления и элементы, которые нужно обновить.

Вы можете попробовать перебрать массив ID записей и применить функцию к ним. Получить ID записей можно с помощью WP_Query.

foreach( $posts_id as $post_id ){
    wp_update_post( $post_id );
}
3 июл. 2014 г. 08:18:59