АРМАДА
Как вызвать метки из определенной категории wordpress
На страницу Пред.  1, 2
Новая тема Написать ответ Advanced Hosters - профессиональный хостинг
Пт Июн 17, 2011 3:31 am Start Post: Как вызвать метки из определенной категории wordpress 

Codd
Опытный
Зарегистрирован: 13.01.2011
Сообщений: 186
Обратиться по нику
# Добавлено:Вс Июл 10, 2011 4:11 pmОтветить с цитатой
$posts = get_posts( array('category' => $cat_id, 'numberposts' => -1, 'orderby'=>'title', 'order' => 'ASC') );

DK +
wordpress
Зарегистрирован: 18.06.2008
Сообщений: 2425
Обратиться по нику
# Добавлено:Вс Июл 10, 2011 5:25 pmОтветить с цитатой
аха, забыл написать что так тоже пробовал Smile, а не может ли быть изза того что имя метки написано так (АРБУЗ ШОКОЛАД и тд) то есть заглавными?

DK +
wordpress
Зарегистрирован: 18.06.2008
Сообщений: 2425
Обратиться по нику
# Добавлено:Вс Июл 10, 2011 5:34 pmОтветить с цитатой
вот тут например

Codd
Опытный
Зарегистрирован: 13.01.2011
Сообщений: 186
Обратиться по нику
# Добавлено:Вс Июл 10, 2011 10:38 pmОтветить с цитатой
Код:
function get_tags_in_cat($cat_id)
{
    $posts = get_posts( array('category' => $cat_id, 'numberposts' => -1) );
    $tags = array();
   
    foreach($posts as $post)
    {
        $post_tags = get_the_tags($post->ID);

        if( !empty($post_tags) )
            foreach($post_tags as $tag)
                $tags[$tag->term_id] = $tag->name;
       
    }

    asort($tags);
    return $tags;
}



Код:
$tags = get_tags_in_cat(1);

    foreach($tags as $tag_id => $tag_name)
        $tags_print[] = '<a href="' .get_tag_link($tag_id). '">' .$tag_name. '</a>';

    echo implode(',', $tags_print);


DK +
wordpress
Зарегистрирован: 18.06.2008
Сообщений: 2425
Обратиться по нику
# Добавлено:Пн Июл 11, 2011 12:26 amОтветить с цитатой
Бро, спасибо заработало Drinks or Beer

с моими топиками и вашей помощью из вп можно делать чудеса Smile

ctapbiu
Опытный
Зарегистрирован: 06.01.2008
Сообщений: 328
Обратиться по нику
# Добавлено:Ср Июл 13, 2011 9:57 pmОтветить с цитатой
уу
я тут прогнал немного
конечно сортировать нужно тэги, а не посты для текущей категории

DK, сорри что дезориентировал

DK +
wordpress
Зарегистрирован: 18.06.2008
Сообщений: 2425
Обратиться по нику
# Добавлено:Ср Апр 04, 2012 1:48 pmОтветить с цитатой
рабочий вариант

Код:


в functions

function get_tags_in_cat($cat_id)
{
    $posts = get_posts( array('category' => $cat_id, 'numberposts' => -1) );
    $tags = array();
   
    foreach($posts as $post)
    {
        $post_tags = get_the_tags($post->ID);

        if( !empty($post_tags) )
            foreach($post_tags as $tag)
                $tags[$tag->term_id] = $tag->name;
       
    }

    asort($tags);
    return $tags;
}

вывод

<?php
$tags = get_tags_in_cat(8685);

    foreach($tags as $tag_id => $tag_name)
        $tags_print[] = '<a class="sub" href="' .get_tag_link($tag_id). '">' .$tag_name. '</a>';

    echo implode(', ', $tags_print);
?>



не знаю куда и что добавить чтобы исключать ненужные метки Smile

Codd
Опытный
Зарегистрирован: 13.01.2011
Сообщений: 186
Обратиться по нику
# Добавлено:Ср Апр 04, 2012 3:14 pmОтветить с цитатой
Код:
function get_tags_in_cat($cat_id)
{
    $bad_tags = array(1, 2, 42, 23); // ID ненужных тегов
    $posts = get_posts( array('category' => $cat_id, 'numberposts' => -1) );
    $tags = array();
   
    foreach($posts as $post)
    {
        $post_tags = get_the_tags($post->ID);

        if( !empty($post_tags) )
            foreach($post_tags as $tag){
            if( array_search($tag->term_id, $bad_tags) == FALSE)
               $tags[$tag->term_id] = $tag->name;
         }
    }

    asort($tags);
    return $tags;
}




В месте вывода

Код:
<?php
$tags = get_tags_in_cat(8685);
$bad_tags = array(1, 2, 42, 23); // ID ненужных тегов

    foreach($tags as $tag_id => $tag_name){
      if( array_search($tag_id, $bad_tags) == FALSE)
         $tags_print[] = '<a class="sub" href="' .get_tag_link($tag_id). '">' .$tag_name. '</a>';
   }
   
    echo implode(', ', $tags_print);
?>


DK +
wordpress
Зарегистрирован: 18.06.2008
Сообщений: 2425
Обратиться по нику
# Добавлено:Ср Апр 04, 2012 3:31 pmОтветить с цитатой
спасибо! Drinks or Beer второй работает, как и первый наверное, а как фильтровать по slug

DK +
wordpress
Зарегистрирован: 18.06.2008
Сообщений: 2425
Обратиться по нику
# Добавлено:Чт Апр 05, 2012 12:02 pmОтветить с цитатой
буду признателен, если кто-нибудь еще напишет как фильтровать по slug

Codd
Опытный
Зарегистрирован: 13.01.2011
Сообщений: 186
Обратиться по нику
# Добавлено:Чт Апр 05, 2012 7:40 pmОтветить с цитатой
Код:
function get_tags_in_cat($cat_id)
{
    $posts = get_posts( array('category' => $cat_id, 'numberposts' => -1) );
    $tags = array();
   
    foreach($posts as $post)
    {
        $post_tags = get_the_tags($post->ID);

        if( !empty($post_tags) )
            foreach($post_tags as $tag){            
                $tags[$tag->term_id]['name'] = $tag->name;
            $tags[$tag->term_id]['slug'] = $tag->slug;
         }
    }

    asort($tags);
    return $tags;
}



Код:
<?php
$tags = get_tags_in_cat(8685);
$bad_tags_slug = array('slug1', 'slug2', 'slug3'); // SLUG ненужных тегов

    foreach($tags as $tag_id => $tag_data){
      if( array_search($tag_data['slug'], $bad_tags_slug) == FALSE)
         $tags_print[] = '<a class="sub" href="' .get_tag_link($tag_id). '">' .$tag_data['name']. '</a>';
   }
   
    echo implode(', ', $tags_print);
?>


DK +
wordpress
Зарегистрирован: 18.06.2008
Сообщений: 2425
Обратиться по нику
# Добавлено:Чт Апр 05, 2012 8:41 pmОтветить с цитатой
респект и уважуха Drinks or Beer
Новая тема Написать ответ    ГЛАВНАЯ ~ ТЕХНИЧЕСКИЕ ВОПРОСЫ

Перейти:  





Генеральный спонсор



Партнеры