Как вызвать метки из определенной категории wordpress
На страницу Пред.  1, 2
Новая тема Написать ответ
# Вс Июл 10, 2011 4:11 pmCodd Зарег.: 13.01.2011 ; Сообщ.: 186Ответить с цитатой
$posts = get_posts( array('category' => $cat_id, 'numberposts' => -1, 'orderby'=>'title', 'order' => 'ASC') );
# Вс Июл 10, 2011 5:25 pmDK Зарег.: 18.06.2008 ; Сообщ.: 2425Ответить с цитатой
аха, забыл написать что так тоже пробовал Smile, а не может ли быть изза того что имя метки написано так (АРБУЗ ШОКОЛАД и тд) то есть заглавными?
# Вс Июл 10, 2011 5:34 pmDK Зарег.: 18.06.2008 ; Сообщ.: 2425Ответить с цитатой
вот тут например
# Вс Июл 10, 2011 10:38 pmCodd Зарег.: 13.01.2011 ; Сообщ.: 186Ответить с цитатой
Код:
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);

# Пн Июл 11, 2011 12:26 amDK Зарег.: 18.06.2008 ; Сообщ.: 2425Ответить с цитатой
Бро, спасибо заработало Drinks or Beer

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

DK, сорри что дезориентировал
# Ср Апр 04, 2012 1:48 pmDK Зарег.: 18.06.2008 ; Сообщ.: 2425Ответить с цитатой
рабочий вариант

Код:


в 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
# Ср Апр 04, 2012 3:14 pmCodd Зарег.: 13.01.2011 ; Сообщ.: 186Ответить с цитатой
Код:
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);
?>

# Ср Апр 04, 2012 3:31 pmDK Зарег.: 18.06.2008 ; Сообщ.: 2425Ответить с цитатой
спасибо! Drinks or Beer второй работает, как и первый наверное, а как фильтровать по slug
# Чт Апр 05, 2012 12:02 pmDK Зарег.: 18.06.2008 ; Сообщ.: 2425Ответить с цитатой
буду признателен, если кто-нибудь еще напишет как фильтровать по slug
# Чт Апр 05, 2012 7:40 pmCodd Зарег.: 13.01.2011 ; Сообщ.: 186Ответить с цитатой
Код:
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);
?>

# Чт Апр 05, 2012 8:41 pmDK Зарег.: 18.06.2008 ; Сообщ.: 2425Ответить с цитатой
респект и уважуха Drinks or Beer
Новая тема Написать ответ    ГЛАВНАЯ ~ ТЕХНИЧЕСКИЕ ВОПРОСЫ
 На страницу Пред.  1, 2
Любое использование материалов, размещенных на ArmadaBoard.com, без разрешения владельцев ArmadaBoard.com запрещено.