@crack_user

Почему wordpress перезаписывает записи?

Делаю создание записи через php, и сую туда проверку - если запись по параметрам найдена, тогда параметр "ОКР" я изменяю, но если не найдена запись - тогда я её добавляю. Проблема в том, что записи при добавление новых - перезаписываются, что делать? Плагин для кэширования - убрал, но не помогло.

$args = array(
                    'post_type' => 'users',
                    'post_status' => 'publish',
                    'posts_per_page' => 1, // Находим только одну запись
                    'title' => $val['Фамилия_Имя_М'], // Заголовок 
                    'meta_query' => array(
                        'relation' => 'AND',
                        array(
                            'key' => 'ДР_М',
                            'value' => $val['ДР_М'],
                            'compare' => '='
                        )
                     ),
                );

                $query = new WP_Query($args);

                if ($query->have_posts()) {
                    // Запись с указанными параметрами найдена
                    while ($query->have_posts()) {
                        $query->the_post();
                        $okr = get_post_meta( get_the_ID(), 'ОКР', true );
                        $newOKR = $okr + $val['ОКР'];
                        update_post_meta( get_the_ID(), 'ОКР', $newOKR);
                    }
                } else {
                    $new_post = array(
                        'post_title' => $val['Фамилия_Имя_М'], // Заголовок новой записи
                        'post_type' => 'users', // Тип записи
                        'post_status' => 'publish' // Статус публикации
                    );

                    $new_post_id = wp_insert_post($new_post);
                    foreach($val as $k1 => $v)
                    {
                        add_post_meta($new_post_id, $k1, $v);
                    }
                }
  • Вопрос задан
  • 27 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы