Intereting Posts
Гравитационные формы | Объект формы NULL Как включить новые электронные письма с уведомлением об учетной записи (администратору)? Мне нужно некоторое объяснение по глобальному $ post запустите короткий код в выдержке одного пользовательского типа сообщения Разработка плагина error_option Меню на мобильной версии не сбрасывается после выбора пункта меню Изменить представление по умолчанию Media Library в 3.5? Транзакция при использовании функций WP, а не ванильного SQL? Зарегистрированные но анонимные комментарии форматирование горизонтальных и вертикальных изображений в настройках? Действия, функции и условные обозначения Роли пользователей WordPress, пользовательские типы сообщений и представления администратора Регистрация разных почтовых форматов для публикации в блоге и CPT query_posts и пользовательские сообщения о таксономии Создание формы пользовательского поиска

получить термин по id без таксономии

Могу ли я получить этот термин по id, не зная, к какой таксономии он принадлежит?

У меня есть мета-поле, которое хранит идентификаторы терминов, но не сохраняет таксономию. Однако вся функция get_term имеет таксономический параметр, отмеченный как требуется.

Может быть, я смогу получить таксономию этого термина как-нибудь?

Solutions Collecting From Web of "получить термин по id без таксономии"

Да, но вам нужен ваш собственный SQL-запрос.

Измененная версия WP get_term ():

 function &get_term_by_id_only($term, $output = OBJECT, $filter = 'raw') { global $wpdb; $null = null; if ( empty($term) ) { $error = new WP_Error('invalid_term', __('Empty Term')); return $error; } if ( is_object($term) && empty($term->filter) ) { wp_cache_add($term->term_id, $term, 'my_custom_queries'); $_term = $term; } else { if ( is_object($term) ) $term = $term->term_id; $term = (int) $term; if ( ! $_term = wp_cache_get($term, 'my_custom_queries') ) { $_term = $wpdb->get_row( $wpdb->prepare( "SELECT t.* FROM $wpdb->terms AS t WHERE t.term_id = %s LIMIT 1", $term) ); if ( ! $_term ) return $null; wp_cache_add($term, $_term, 'my_custom_queries'); } } if ( $output == OBJECT ) { return $_term; } elseif ( $output == ARRAY_A ) { $__term = get_object_vars($_term); return $__term; } elseif ( $output == ARRAY_N ) { $__term = array_values(get_object_vars($_term)); return $__term; } else { return $_term; } } 

Наверное, это не очень хорошая идея. Попытайтесь обработать налог также в своих метаполях …

Я принял ответ «Один трик Пони», потому что он меня на правильном пути, и он отвечает на мой вопрос. Однако, в конце концов, я использую это, он возвращает объект с полным термином с его полями таксономии. Хотя это немного хаки …

 /** * Get ther without khowing it's taxonomy. Not very nice, though. * * @uses type $wpdb * @uses get_term() * @param int|object $term * @param string $output * @param string $filter */ function &get_term_by_id($term, $output = OBJECT, $filter = 'raw') { global $wpdb; $null = null; if ( empty($term) ) { $error = new WP_Error('invalid_term', __('Empty Term')); return $error; } $_tax = $wpdb->get_row( $wpdb->prepare( "SELECT t.* FROM $wpdb->term_taxonomy AS t WHERE t.term_id = %s LIMIT 1", $term) ); $taxonomy = $_tax->taxonomy; return get_term($term, $taxonomy, $output, $filter); }