Как перезаписать посты в кастомном типа записей в обратном порядке?

179
18 октября 2018, 05:00

Мне необходимо перезаписать записи из кастомного типа записей в обратном порядке. Я пробовал добавить такой код в файл functions.php

$args = array(
    'numberposts' => -1,
    'post_type' => 'otcheti'
);
$othecti = get_posts($args);
$othecti_revers = array_reverse(get_posts($args));
for ($i = 0; $i < count($othecti); $i++) {
    $newOthect = $othecti_revers[$i];
    $newOthect->ID = $othecti[$i];
    wp_insert_post($newOthect);
}

К сожалению, перезапись не происходит. Подскажите, в чем может быть дело?

Может есть какой-нибудь более простой способ перезаписать посты в кастомном типе записей обратном порядке?

Answer 1

Может есть какой-нибудь более простой способ перезаписать посты в кастомном типе записей обратном порядке?

В массив $args добавь параметр orederby с нужным значением "обратного"

См:
https://developer.wordpress.org/reference/classes/wp_query/#order-orderby-parameters
https://wp-kama.ru/function/wp_query#parametry-sortirovki-i-poryadka

Answer 2

Разобрался.

В общем есть смысл использовать вот такой цикл и обновлять только те поля, которые нужно обновить, а не пытаться полностью перезаписать обьект:

for ($i= 0; $i < count($posts); $i++) {
    wp_update_post(array(
        'ID' =>  $posts[$i]->ID,
        'post_title' => $posts_reverse[$i]->post_title,
        'post_content' => $posts_reverse[$i]->post_content,
    ));
}
READ ALSO
php download file не записывая его на сервер

php download file не записывая его на сервер

Можно ли сделать так, чтобы PHP сформировал содержимое небольшого файла ( к примеру CSV) массивом или просто строкой, но не записывал его на диск...

148
Установка и начало работы с DOCTRINE 2

Установка и начало работы с DOCTRINE 2

Установил я через compouser doctrine 2

154
Проблемы с удалением куки файла при первой загрузке страницы

Проблемы с удалением куки файла при первой загрузке страницы

Удаляю куки файл следующим действием:

166