仅当不为空时才显示自定义分类法
Display custom taxonomy only if is not empty
我有这样的 BOOKS 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中放入流派字段代码,如果数据为空则流派字段不显示?
而不是使用 the_terms()
函数,您应该使用 get_the_term_list()
function,将其包含在您的回显 html 代码中。然后我在你的图书信息框的末尾添加了显示(你可以把它移到你想要的地方,以满足你的需要)。
这是你的代码,有一些变化:
<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>
这应该有效。
我有这样的 BOOKS 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中放入流派字段代码,如果数据为空则流派字段不显示?
而不是使用 the_terms()
函数,您应该使用 get_the_term_list()
function,将其包含在您的回显 html 代码中。然后我在你的图书信息框的末尾添加了显示(你可以把它移到你想要的地方,以满足你的需要)。
这是你的代码,有一些变化:
<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>
这应该有效。