Создание Infinite l oop во время wp_insert_post - PullRequest
0 голосов
/ 08 апреля 2020

Итак, я интегрирую XML API в WordPress. Я получаю имя и идентификатор сообщения из API и создаю пользовательское сообщение. Но когда я использую функцию wp_insert_post, она создает бесконечное число l oop, поэтому я получаю бесконечное количество пользовательских сообщений с одинаковым заголовком. Вот мой код (было бы очень полезно, если бы кто-то мог помочь.)

function register_custom_post(){
    register_post_type( 'hostel', array(
        'label' => 'Hotel',
        'public' => true,
        'capability_type' => 'post',
    ));
}
    add_action('init','register_custom_post');
    add_action( 'wp_ajax_nopriv_get_hotels_from_xml', 'get_hotels_from_xml' );
    add_action( 'wp_ajax_get_hotels_from_xml', 'get_hotels_from_xml' );
    function get_hotels_from_xml(){
        $hotels = [];
        $xml = simplexml_load_file('C:\Users\USER\Documents\API\HotelDetailXML\53032.xml');
        $json = json_encode($xml);
        $results = json_decode($json);
        if(!is_array($results)||empty($results)){
            false;
        }
        $hotel_slug = sanitize_title($results->Name.'-'.$results->Id);
            $gallerypost = array(
            'post_name' => $hotel_slug,
            'post_title' => $hotel_slug,
            'post_type' => 'hostel',
            'post_status' => 'publish');
            remove_action( 'save_post', 'get_hotels_from_xml'  );
            wp_insert_post( $gallerypost );
            add_action( 'save_post', 'get_hotels_from_xml'  );
            wp_remote_post( admin_url('admin-ajax.php?action=get_hotels_from_xml'), [
            'blocking' => false,
            'sslverify' => false // we are sending this to ourselves, so trust it.

        ]);
    }

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...