'Курс', 'add_new'=>'Добавить новый', 'add_new_item'=>'Добавить новый', 'edit_item'=>'Редактировать', 'new_item'=>'Новый курс', 'view_item'=>'Посмотреть курс', 'search_items'=>'Найти курс', 'not_found'=>'Не найдено', 'not_found_in_trash'=>'В корзине не найдено', 'parent_item_colon'=>'', 'menu_name'=>'Курсы' ); $args=array('label' => $label, 'labels'=>$labels, 'public'=>true, 'exclude_from_search' => false, 'publicly_queryable'=>true, 'show_ui'=>true, 'show_in_menu'=>true, 'query_var'=>true, 'rewrite'=>true, 'capability_type'=>'post', 'has_archive'=>true, 'menu_icon'=>'dashicons-media-document', 'hierarchical'=>false, 'menu_position'=>null, 'rewrite' => array( 'slug' => 'courses' ), 'supports'=>array('title', 'editor', 'thumbnail', 'excerpt')); register_post_type('cake_courses', $args); } add_action('init', 'cake_courses_init'); //***** END Создание типа записи Вакансии ***** // хук для регистрации add_action( 'init', 'create_cake_courses_tag' ); function create_cake_courses_tag(){ register_taxonomy( 'cake_courses_tag', [ 'cake_courses' ], [ 'label' => 'Метки', // определяется параметром $labels->name 'labels' => [ 'name' => 'Метки', 'singular_name' => 'Метка', 'search_items' => 'Поиск Метки', 'all_items' => 'Все Метки', 'view_item ' => 'Просмотреть Метку', 'edit_item' => 'Править Метку', 'update_item' => 'Обновить Метку', 'add_new_item' => 'Добавить нового', 'new_item_name' => 'Добавить нового', 'menu_name' => 'Метки', 'back_to_items' => '← Обратно к Меткам', ], 'description' => '', // описание таксономии 'public' => true, // 'publicly_queryable' => null, // равен аргументу public // 'show_in_nav_menus' => true, // равен аргументу public // 'show_ui' => true, // равен аргументу public // 'show_in_menu' => true, // равен аргументу show_ui // 'show_tagcloud' => true, // равен аргументу show_ui // 'show_in_quick_edit' => null, // равен аргументу show_ui 'hierarchical' => false, 'rewrite' => true, 'capabilities' => array(), 'meta_box_cb' => null, // html метабокса. callback: `post_categories_meta_box` или `post_tags_meta_box`. false — метабокс отключен. 'show_admin_column' => false, // авто-создание колонки таксы в таблице ассоциированного типа записи. (с версии 3.5) 'show_in_rest' => null, // добавить в REST API 'rest_base' => null, ] ); } add_action( 'init', 'create_cake_courses_category' ); function create_cake_courses_category(){ register_taxonomy( 'course_category', [ 'cake_courses' ], [ 'label' => 'Категории (Курсы)', // определяется параметром $labels->name 'labels' => [ 'name' => 'Категория', 'singular_name' => 'Категория', 'search_items' => 'Поиск Категории', 'all_items' => 'Все Категории', 'view_item ' => 'Просмотреть Категорию', 'edit_item' => 'Править Категорию', 'update_item' => 'Обновить Категорию', 'add_new_item' => 'Добавить новую', 'new_item_name' => 'Добавить новую', 'menu_name' => 'Категории', 'back_to_items' => '← Обратно к Категориям', ], 'description' => '', // описание таксономии 'public' => true, 'publicly_queryable' => true, // равен аргументу public // 'show_in_nav_menus' => true, // равен аргументу public // 'show_ui' => true, // равен аргументу public // 'show_in_menu' => true, // равен аргументу show_ui // 'show_tagcloud' => true, // равен аргументу show_ui // 'show_in_quick_edit' => null, // равен аргументу show_ui 'hierarchical' => false, 'rewrite' => true, 'capabilities' => array(), 'meta_box_cb' => null, // html метабокса. callback: `post_categories_meta_box` или `post_tags_meta_box`. false — метабокс отключен. 'show_admin_column' => false, // авто-создание колонки таксы в таблице ассоциированного типа записи. (с версии 3.5) 'show_in_rest' => null, // добавить в REST API 'rest_base' => null, ] ); } function clear_cake_courses(){ global $wpdb; $post_table = $wpdb->get_blog_prefix().'posts'; $all_cake_courses = $wpdb->get_results("SELECT ID FROM $post_table WHERE post_type = 'cake_courses'", ARRAY_A); foreach($all_cake_courses as $V){ $idADV = get_post_meta( $V['ID'], 'id_adv_cake', true ); if($idADV != 0){ $wpdb->update($post_table, array('post_status' => 'draft'), array('ID' => $V['ID']) ); } } } function create_cake_courses_cat($CAT_ARR){ global $wpdb; $term_meta_table = $wpdb->get_blog_prefix().'termmeta'; foreach($CAT_ARR as $k => $v){ $cource_cat_id = $wpdb->get_var( "SELECT term_id FROM $term_meta_table WHERE meta_key='cat_adv' AND meta_value='".$k."'" ); if($cource_cat_id == ''){ $insert_res = wp_insert_term($v, 'course_category', array( 'slug' => translit($v), )); if( is_wp_error( $insert_res ) ){ //echo $insert_res->get_error_message(); } else { $term_id = $insert_res['term_id']; add_term_meta( $term_id, 'cat_adv', $k, true ); } } } } function create_cake_courses_post($offer_obj){ global $wpdb; $post_meta_table = $wpdb->get_blog_prefix().'postmeta'; $term_meta_table = $wpdb->get_blog_prefix().'termmeta'; $post_id = $wpdb->get_var( "SELECT post_id FROM $post_meta_table WHERE meta_key='id_adv_cake' AND meta_value='".$offer_obj['@attributes']['id']."'" ); $cource_cat_id = $wpdb->get_var( "SELECT term_id FROM $term_meta_table WHERE meta_key='cat_adv' AND meta_value='".$offer_obj['categoryId']."'" ); $meta_array = array( 'vendor' => $offer_obj['vendor'], 'title_copy' => $offer_obj['name'], 'id_adv_cake' => $offer_obj['@attributes']['id'], 'url_adv_cake' => $offer_obj['url'], 'description' => $offer_obj['description'], //'cat' => $cource_cat_id, 'img_lnk' => $offer_obj['picture'], 'currency' => $offer_obj['currencyId'], 'price' => $offer_obj['price'], 'old_price' => $offer_obj['oldprice'], 'with_employment' => $offer_obj['with_employment'], 'duration' => $offer_obj['duration'], ); if($post_id == 0){ $meta_array['on_feed'] = 0; $meta_array['cat'] = $cource_cat_id; $meta_array['upper'] = 0; } else{ if(get_field('upper', $post_id) == ''){ $meta_array['upper'] = 0; } } //d($meta_array); $postarr = array( 'ID' => $post_id, 'comment_status' => 'closed', 'ping_status' => 'open', 'post_author' => 1, 'post_name' => translit($offer_obj['name']), 'post_status' => 'publish', 'post_title' => $offer_obj['name'], 'post_type' => 'cake_courses', 'meta_input' => $meta_array, ); $post_id = wp_insert_post( $postarr, $wp_error, $fire_after_hooks ); clean_post_cache($post_id); wp_cache_flush(); } ?>