2012-06-19 3 views
0

На домашней странице Я печатаю сообщения, и я хочу напечатать название категории в цикле foreach? Как я могу это сделать?Как получить категорию сообщения

Пример кода:

 if (have_posts()) : 

     $args = array(
      'showposts' => '5', 
      'paged' => $paged 
     ); 


     $thePosts = query_posts($args); 

     foreach($thePosts as $post) : setup_postdata($post); 

    ... 

ответ

1

Решено:

<?php 

      GLOBAL $wpdb; 

      $query = " 
      SELECT 
       terms.slug, r.term_taxonomy_id, terms.name AS cat_name 
      FROM 

       {$wpdb->prefix}term_taxonomy t, {$wpdb->prefix}terms terms, $wpdb->posts p, $wpdb->term_relationships r 

      WHERE 

       t.term_id=terms.term_id AND 
       p.ID = r.object_id AND 
       r.term_taxonomy_id = t.term_taxonomy_id AND 
       p.ID = '".$post->ID."' 

      ORDER BY terms.term_order ASC, terms.term_id DESC"; 

      $categories = $wpdb->get_results($query, ARRAY_A); 


      if(is_array($categories)){ 

       $i=1; 
       foreach($categories as $category) { 

        echo '<span>'.$category['cat_name'].'</span>'; 

        ++$i; 
       }#end foreach($categories 

      }#end if 


      ?> 
0

Поместите этот код в цикле.

<?php 
/* translators: used between list items, there is a space after the comma */ 
$categories_list = get_the_category_list(__(', ', 'twentyeleven')); 

if ('' != $categories_list) { 
$utility_text = __('This entry was posted in %1$s', 'twentyeleven'); 
} 
printf($utility_text); 
?> 

Это напечатает категории текущего сообщения. Надеюсь, вы используете детскую тему из двадцати.

+0

Ваше решение не работает. Печатать нечего. – CroiOS

Смежные вопросы