Intereting Posts
Лучшая практика при модификации плагинов CSS Как загрузить скрипт и стиль на определенной странице в фоновом режиме? Консолидация контента в 20-й теме RSS Количество подписчиков без использования FeedBurner Возможно ли иметь собственный тип сообщения с фидом, но без архива? Как сохранить запись изменений в настраиваемом поле? Кнопка RSS в категориях разбиения на страницы / теги Поиск многопользовательского календаря Яркий тег WP предлагает метабокс. Как он обрабатывает идентификатор тега? get_template_part () не работает, если вы вызываете его, когда находитесь в подпапке Ошибка: вызов функции-члена get_error_code () для не-объекта Найти файл url в сообщении и добавить его в медиа-библиотеку Шаблон для дочерних страниц / подстраниц Как получить текст ссылки по умолчанию для постоянной ссылки? (разрешено) Загрузка изображений с пользовательской страницы с помощью загрузчика blueimp?

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

У меня есть пользовательский тип сообщения, называемый «служба». У меня есть форма на лицевой стороне, с которой пользователи могут создавать службу. Существует также 5 таксономий, которые могут использоваться службой. Когда пользователь создает службу, я хочу, чтобы они могли добавлять теги к своей службе, независимо от того, какая таксономия они выбирают для своей службы. Мой скрипт начинается с создания сообщения, затем он проверяет, существует ли каждый из тегов, если тег не существует, он вставлен, если он существует, используется идентификатор существующего тега. Я продолжаю получать ошибку WP «Недопустимая таксономия».

Есть ли способ добавить термин к настраиваемому типу сообщений независимо от его таксономии?

Вот код, который регистрирует CPT и таксономии:

register_post_type('service', array( 'labels' => array( 'name' => 'Services', 'singlular_name' => 'Service', 'add_new' => 'Add New', 'add_new_item' => 'Add New Service', 'edit_item' => 'Edit Service', 'new_item' => 'New Service', 'view_item' => 'View Service', 'view_items' => 'View Services', 'search_items' => 'Search Services', 'not_found' => 'No services found', 'not_found_in_trash' => 'No services found in trash', 'all_items' => 'All Services', 'archives' => 'Archived Services', 'featured_image' => 'Service Logo', 'use_featured_image' => 'Use as logo', 'remove_featured_image' => 'Remove logo', 'set_featured_image' => 'Set logo', 'menu_name' => 'Services' ), 'description' => 'Services for events provided by people.', 'public' => true, 'publicly_queryable' => true, 'show_in_admin_bar' => true, 'menu_icon' => 'dashicons-id-alt', 'capability_type' => 'services', 'hierarchical' => false, 'supports' => array('title', 'author', 'thumbnail', 'custom-fields', 'comments', 'revisions'), 'has_archive' => true ) ); $band_labels = array( 'name' => _x( 'Bands', 'taxonomy general name' ), 'singular_name' => _x( 'Band', 'taxonomy singular name' ), 'search_items' => __( 'Search Bands' ), 'all_items' => __( 'All Bands' ), 'parent_item' => __( 'Parent Band' ), 'parent_item_colon' => __( 'Parent Band:' ), 'edit_item' => __( 'Edit Band' ), 'update_item' => __( 'Update Band' ), 'add_new_item' => __( 'Add New Band' ), 'new_item_name' => __( 'New Band Name' ), 'menu_name' => __( 'Bands' ), ); // Now register the taxonomy register_taxonomy('Band',array('service'), array( 'hierarchical' => false, 'labels' => $band_labels, 'show_ui' => true, 'show_admin_column' => false, 'query_var' => true, 'rewrite' => array( 'slug' => 'bands' ), )); 

Здесь я изменяю службу:

 function modify(){ $post = get_post($this->id); if($post != null){ $post_id = wp_update_post(array( 'ID' => $this->id, 'post_title' => $_POST['business_name'] )); if($_POST['location'] != $this->info['meta']['service_location'][0]){ update_post_meta($this->id, 'service_location', $_POST['location']); $this->geocode($_POST['location']); update_post_meta($this->id, 'service_lat', $this->geocode['lat']); update_post_meta($this->id, 'service_lon', $this->geocode['lon']); } $meta = array('description', 'max_distance', 'category', 'website', 'email'); foreach($meta as $key){ if($_POST[$key] != $this->info['meta']['service_'.$key][0] || !isset($this->info['meta']['service_'.$key][0])){ if(get_post_meta($this->id, 'service_'.$key, true)){ update_post_meta($this->id, 'service_'.$key, $_POST[$key]); } else { add_post_meta($this->id, 'service_'.$key, $_POST[$key]); } } } $tags = explode(',', $_POST['tags']); $keywords = array(); if(count($tags) > 0){ foreach($tags as $tag){ $term_exists = term_exists($tag); if($term_exists !== 0 && $term_exists !== null){ $term = $term_exists; } else { $new_term = wp_insert_term($tag, 'service'); if(!is_wp_error($new_term)){ $term = $new_term['term_id']; } else { die($new_term->get_error_message()); } } $keywords[] = $term; } } $keywords = array_map('intval', $keywords); $keywords = array_unique($keywords); $add_terms = wp_set_object_terms($this->id, $keywords, 'service'); return true; } else { return false; } } 

Solutions Collecting From Web of "Как добавить пользовательский термин в сообщение типа персонализированного сообщения?"