2016-10-11 4 views
1

У меня есть книги Infobox так:Показать пользовательские таксономии, только если не пуста

<h4 style="margin:0 8px 6px 0px; padding-left:20px;">Data Buku</h4> 
<table> 
<?php 
    $my_title = get_the_title(); 
    $my_date = get_post_meta(get_the_ID(), 'date', true); 
    $my_penulis = get_post_meta(get_the_ID(), 'penulis', true); 
     $my_isbn = get_post_meta(get_the_ID(), 'isbn', true); 
    $my_publisher = get_the_category(); 
    $my_author = get_the_tags(); 

if(! empty($my_title)) { 
    echo '<tr><td align="right" class="style" width="210"><b>Title</td><td align="center" class="style">:</td></b><td class="style"> ' . $my_title . '</td></tr>'; 
    } 
if(! empty($my_date)) { 
    echo '<tr><td align="right" class="style"><b>Release Date</td><td align="center" class="style">:</td></b><td class="style"> ' . $my_date . '</td></tr>'; 
    } 
if(! empty($my_isbn)) { 
    echo '<tr><td align="right" class="style"><b>ISBN</td><td align="center" class="style">:</td></b><td class="style"> ' . $my_isbn . '</td></tr>'; 
    } 
if(! empty($my_publisher[0])) { 
    echo '<tr><td align="right" class="style"><b>Publisher</td><td align="center" class="style">:</td></b><td class="style"> <a href="'.get_category_link($my_publisher[0]->term_id).'">'.$my_publisher[0]->cat_name.'</a></td></tr>'; 
    } 
if(! empty($my_author)) { 
    $tag_links = array(); 
    foreach($my_author as $tag) { 
    $tag_links[] = '<a href="'.get_tag_link($tag).'">'.$tag->name.'</a>'; 
    } 
    echo '<tr><td align="right" class="style"><b>Author</td><td align="center" class="style">:</td></b><td class="style"> ' . implode(', ', $tag_links) . ' </td></tr>'; 
    } 
?> 

затем создать жанр поле, используемое Simple Taxonomy Plugin, и я получаю код для отображения, как это:

<?php the_terms($post->ID, 'genre', 'Genre: ', ', ', ' '); ?> 

Моя проблема, как я поместил код жанра в BOOKS INFOBOX, и если пустые данные так не отображаются в жанре?

ответ

2

Вместо использования the_terms() функцию, вы должны использовать get_the_term_list() function, чтобы включить его в свой вторит HTML код. Затем я добавил дисплей в конце вашей книги Infobox (вы можете переместить его туда, где хотите, в ногу на свои нужды).

Вот ваш код с некоторыми изменениями:

<h4 style="margin:0 8px 6px 0px; padding-left:20px;">Data Buku</h4> 
<table> 
<?php 
    $my_title = get_the_title(); 
    $my_date = get_post_meta(get_the_ID(), 'date', true); 
    $my_penulis = get_post_meta(get_the_ID(), 'penulis', true); 
     $my_isbn = get_post_meta(get_the_ID(), 'isbn', true); 
    $my_publisher = get_the_category(); 
    $my_author = get_the_tags(); 

    // Here we save the "Genre" terms in a variable. 
    $genre_terms = get_the_term_list($post->ID, 'genre', '', ', ', ' '); 

    if(! empty($my_title)) { 
     echo '<tr><td align="right" class="style" width="210"><b>Title</td><td align="center" class="style">:</td></b><td class="style"> ' . $my_title . '</td></tr>'; 
    } 
    if(! empty($my_date)) { 
     echo '<tr><td align="right" class="style"><b>Release Date</td><td align="center" class="style">:</td></b><td class="style"> ' . $my_date . '</td></tr>'; 
    } 
    if(! empty($my_isbn)) { 
     echo '<tr><td align="right" class="style"><b>ISBN</td><td align="center" class="style">:</td></b><td class="style"> ' . $my_isbn . '</td></tr>'; 
    } 
    if(! empty($my_publisher[0])) { 
     echo '<tr><td align="right" class="style"><b>Publisher</td><td align="center" class="style">:</td></b><td class="style"> <a href="'.get_category_link($my_publisher[0]->term_id).'">'.$my_publisher[0]->cat_name.'</a></td></tr>'; 
     } 
    if(! empty($my_author)) { 
     $tag_links = array(); 
     foreach($my_author as $tag) { 
      $tag_links[] = '<a href="'.get_tag_link($tag).'">'.$tag->name.'</a>'; 
     } 
     echo '<tr><td align="right" class="style"><b>Author</td><td align="center" class="style">:</td></b><td class="style"> ' . implode(', ', $tag_links) . ' </td></tr>'; 
    } 
    // Here "Genres" are displayed if not empty. 
    if(! empty($genre_terms)) { 
     echo '<tr><td align="right" class="style"><b>Genre</td><td align="center" class="style">:</td></b><td class="style"> ' . $genre_terms . ' </td></tr>';   
    } 
?> 
</table> 

Это должно работать.