Intereting Posts
Изменение ссылок при вставке редактором WYSIWYG WP_Error с сообщением о проверке нескольких форм Показывать страницы с помощью get_posts? Смутно о AngularJS и WordPress где находится информация о постоянной медиа информации, хранящаяся в базе данных? Экспортировать только страницы и сообщения с дампом mysql больше тега в $ post-> content при использовании get_pages Добавить вложение изображения для публикации через кодирование? Размер изображения галереи WordPress только как бэкэнд. Как выводить содержимое базы данных на публичной стороне без WordPress? Почему tinyMCE.editors не работает на tinyMCE Редактирование тематических файлов на сайте, размещенном на WordPress.com Почему SlideShow (созданный с использованием JQuery FlexSlider) не может работать, если я загружаю его form functions.php, но работаю, если я загружу его из файла footer.php? получить выбранный пост с помощью $ _GET Показать ребенка с родительской страницы, включая всех других родителей

Таксономия, субтаксономия, детальная таксономия продукта woocommerce

Привет, мне нужно получить основную таксономию и суб-таксономию продукта в woocommerce. Я знаю, как получить информацию о таксономии. 123 is product id .

 $terms = get_the_terms(123, 'product_cat'); 

Я знаю, как получить таксономическое имя

  echo $terms[0]->name 

Но мне нужно: Nokia 3110 – мой мобильный телефон. Так что это под electronics-> mobiles -->ordinary-->Single sim-->nokia 3110

 id is 123 . 

на странице редактирования продукта на админ-панели nokia 3110 находится под одиночным симом [на самом деле сингл находится под электроникой -> мобильные -> обычные ]. Но я только проверил одиночный сим флажок, не проверял электронику, мобильные телефоны, обычные и т. д.

Моя потребность в этом id мне нужно получить, главным образом, в том, что Taxonmy nokia 31110 есть. Ответ: это в электронике. И мне нужна вторая таксономия, то есть мне нужно распечатать ее под мобильными телефонами. Как получить эти данные

Спасибо .

я знаю, как получить самую высокую таксономию

 function get_term_top_most_parent($term_id, $taxonomy){ // start from the current term $parent = get_term_by( 'id', $term_id, $taxonomy); // climb up the hierarchy until we reach a term with parent = '0' while ($parent->parent != '0'){ $term_id = $parent->parent; $parent = get_term_by( 'id', $term_id, $taxonomy); } return $parent; } 

но, пожалуйста, помогите найти вторую верхнюю таксономию.

Основываясь на этом ответе , вот моя функция, чтобы получить все ваши условия в массиве:

 function get_term_ancestors($post_id, $taxonomy){ // Declare the array where we are going to store the terms $ancestors = array(); // start from the current term $parent = array_shift(get_the_terms($post_id,$taxonomy)); // climb up the hierarchy until we reach a term with parent = '0' while ($parent->parent != '0'){ $term_id = $parent->parent; $parent = get_term_by( 'id', $term_id, $taxonomy); $ancestors[] = $parent; } return $ancestors; } 

Используйте следующее:

 $ancestors = get_term_ancestors(123,'product_cat'); 

Таким образом, с этой функцией, ваш верхний уровень будет:

 $ancestors[count($ancestors)-1] // or array_pop($ancestors); 

и ваш второй родитель верхнего уровня будет

 $ancestors[count($ancestors)-2] // or another array_pop($ancestors) 

Также обратите внимание, что вы должны проверить isset ($ ancestors [count ($ ancestors) -2]), прежде чем пытаться получить к нему доступ

Предупреждение. Это будет работать только для продуктов, которые находятся в одном сроке. Эта функция не обрабатывает несколько терминов