san_jorich
@san_jorich
Творческий кодер

Wp_isert_post для custom_post_type. Как правильно?

if( isset($_POST['estate_data']) and !empty($_POST['estate_data']) ){
        
        $estate_data = $_POST['estate_data'];
        $estate_type = get_term_by('id', $estate_data['estate_type'],'estate_type');
        $proprietor_id = get_current_user_id();
        $estate_object_data = array(
            'post_type' =>  'estate',
            'post_title'    => 'Объект '.$estate_data['estate_address_street'].' '.$estate_type->name.' '.$estate_data['estate_rooms_count'].'-ка',
            'post_content'  => 'Объект '.$estate_data['estate_address_street'].' '.$estate_type->name.' '.$estate_data['estate_rooms_count'].'-ка',
            'post_status'   => 'publish',
            'post_author'   => $proprietor_id,
            'post_category' => array(
                $estate_data['estate_district'], $estate_data['estate_type'],
                $estate_data['estate_building_type'], $estate_data['estate_operation'],
                $estate_data['estate_class'], $estate_data['estate_proprietor']
            ),

        );

        $new_estate_id = wp_insert_post($post_data, true);

        /*$taxonomies = array('estate_district', 'estate_type', 'estate_building_type', 'estate_operation', 'estate_class', 'estate_proprietor');
        foreach ($estate_data as $key => $value){
            if ( !in_array($key, $taxonomies) ){
                add_post_meta( $new_estate_id, $key, $value, true );
            }   
        } */
        wp_send_json('Объект успешно добавлен, его ID = '.$new_estate_id);   wp_die();
    }

Пытаюсь создать запись "произвольного" типа estate, ajax возвращает 500.. Не могу понять в чем дело..
  • Вопрос задан
  • 27 просмотров
Пригласить эксперта
Ответы на вопрос 2
HectorPrima
@HectorPrima
программист
500 ну никаким боком к wp_insert_post не относится!
Вам сюда, и читать: https://wp-kama.ru/id_2018/ajax-v-wordpress.html
Ответ написан
@id_baton4eg
Мне кажется нужно просто загрузить среду ВП перед выполнением его ф-й :)
require_once  $_SERVER["DOCUMENT_ROOT"]."/wp-load.php";
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы