Как в рубрики получить нужные метки.
-
Здравствуйте. Помогите решить задачу. Как получить все метки (теги), которые добавлены только к записям (постам) находящемся в рубрики cut1. Т.е. у менять есть только id рубрики cut1 и мне нужно получить все метки находящиеся в записях этой рубрики.
П.С. Метки мне нужны для создания фильтра.
П.С. Нашел вот такой плагин http://docs.designsandcode.com/search-filter/, но он не подходит полосковый создает фильтр сразу по всем меткам.
-
$terms = get_terms( get_category( get_query_var( 'cat' ) ) ,array( 'fields' => 'ids' ,'hierarchical' => true ,'hide_empty' => false ,'pad_counts' => true ) ); $term_links = array(); foreach ( $terms as $term ) { $link = get_term_link( $term, $taxonomy ); ! is_wp_error( $link ) AND $term_links[] = sprintf( '<a href="%s" rel="tag">%s</a>' ,esc_url( $link ) ,$term->name ); } // Now do something clever with $term_links // For example: ! is_empty( $terms ) AND printf( '<ul>%s</ul>' ,implode( "", $term_links ) );
Вставил код: появилась ошибка. Код я вставил в sidebar.php
Warning: Illegal offset type in isset or empty in /public_html/wp-includes/taxonomy.php on line 231
Fatal error: Call to undefined function is_empty() in /public_html/wp-content/themes/Boutique/sidebar.php on line 29
Помогите разобраться в примере.
Есть код
$myterms = get_terms( 'category', array( 'fields' => 'ids' // Какие поля возвращать в результирующем массиве. ids вернуть массив чисел ,'hierarchical' => true // Включать ли в результат термины, которые имеют не пустые дочерние термины (в которых есть записи). ,'hide_empty' => false // Скрывать ли термины в которых нет записей. ,'pad_counts' => true //Если передать true, то число которое показывает количество записей в родительских категориях будет суммой своих записей и записей из дочерних категорий. ) ); foreach ($myterms as $term) { echo "<li>".$term."</li>"; }
Он выводит все ID категорий (рубрик), но в WP-kame написано, что
Таксономии, элементы которых нужно получить. Можно указать одну таксономию "my_tax" или несколько arra('category', 'tax2').
И я не могу понять, что такое tax2?
Я думал, что вместо него можно написать название тега, который есть у меня на сайте, например «tag1».или вот пример:
#2 Выведем на экран список названий всех разделов таксономии "my_taxonomy": $terms = get_terms("my_taxonomy"); $count = count($terms); if($count > 0){ echo "<ul>"; foreach ($terms as $term) { echo "<li>".$term->name."</li>"; } echo "</ul>"; }
Откуда они взяли эти названия my_taxonomy и tax2? Где их можно посмотреть?
это собственные таксономии. у вас их нет.
в вашем случае надо использовать только category.Тогда я не понимаю, что именно делает эта часть вашего кода:
$terms = get_terms( get_category( get_query_var( 'cat' ) ) ,array( 'fields' => 'ids' ,'hierarchical' => true ,'hide_empty' => false ,'pad_counts' => true ) );
Я Посмотрел, что Вы предлагаете обработать функции get_terms, получилось:
$thisCat = get_category( get_query_var( 'cat' ) ); print_r($thisCat);
Показывает:
stdClass Object ( [term_id] => 6 [name] => Cat 1 [slug] => cat1 [term_group] => 0 [term_taxonomy_id] => 6 [taxonomy] => category [description] => Текст описание [parent] => 5 [count] => 37 [filter] => raw [cat_ID] => 6 [category_count] => 37 [category_description] => Текст описание [cat_name] => Cat 1 [category_nicename] => cat1 [category_parent] => 5 )
Т.е.
get_query_var( ‘cat’ ) получает ID ткущей функции (ID = 6), потом ->
get_category получает все данные о текущей категории, и дальше вы эти данные подставляете в функцию get_terms() и у меня выдает ошибкуWarning: Illegal offset type in isset or empty in /public_html/wp-includes/taxonomy.php on line 231
Подскажите, с чего мне начать?
Я разобрался, что такое таксомонии. Например это «рубрики» и «метки» для постов (записей) типа «post». И я могу создать новую таксомонию (производитель) для постов (записей) типа «post». И потом при редактирование поста могу ему присвоить значение (iPhone или Samsung) принадлежащее новой таксономии производитель http://wp-kama.ru/function/register_taxonomy.
А где Вы взяли этот код? (просто там комментарии на английском)
$terms = get_terms( get_category( get_query_var( 'cat' ) ) ,array( 'fields' => 'ids' ,'hierarchical' => true ,'hide_empty' => false ,'pad_counts' => true ) ); $term_links = array(); foreach ( $terms as $term ) { $link = get_term_link( $term, $taxonomy ); ! is_wp_error( $link ) AND $term_links[] = sprintf( '<a href="%s" rel="tag">%s</a>' ,esc_url( $link ) ,$term->name ); } // Now do something clever with $term_links // For example: ! is_empty( $terms ) AND printf( ' <ul>%s</ul> ' ,implode( "", $term_links ) );
get_query_var( ‘cat’ ) получает ID ткущей функции (ID = 6), потом ->
get_category получает все данные о текущей категории, и дальше вы эти данные подставляете в функцию get_terms() и у меня выдает ошибкуWarning: Illegal offset type in isset or empty in /public_html/wp-includes/taxonomy.php on line 231
Я всё равно не понял. Разве правильно в функцию get_terms() подставлять результат функции get_category()?
Должно быть что-то вроде
get_terms("my_taxonomy");
а получается
get_terms(" [term_id] => 85 [name] => Category Name [slug] => category-name [term_group] => 0 [term_taxonomy_id] => 85 [taxonomy] => category [description] => [parent] => 70 [count] => 0 [cat_ID] => 85 [category_count] => 0 [category_description] => [cat_name] => Category Name [category_nicename] => category-name [category_parent] => 70 ");
- Тема «Как в рубрики получить нужные метки.» закрыта для новых ответов.