• Здравствуйте. Помогите решить задачу. Как получить все метки (теги), которые добавлены только к записям (постам) находящемся в рубрики cut1. Т.е. у менять есть только id рубрики cut1 и мне нужно получить все метки находящиеся в записях этой рубрики.
    П.С. Метки мне нужны для создания фильтра.
    П.С. Нашел вот такой плагин http://docs.designsandcode.com/search-filter/, но он не подходит полосковый создает фильтр сразу по всем меткам.

Просмотр 9 ответов — с 1 по 9 (всего 9)
  • $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
    ");

Просмотр 9 ответов — с 1 по 9 (всего 9)
  • Тема «Как в рубрики получить нужные метки.» закрыта для новых ответов.