我真的需要你的帮助。我刚刚创建了一个显示所有帖子的WordPress页面模板,但我的问题是自定义父分类/类别的显示和它的子项。我的帖子看起来像这样。
<table>
<tr>
<td>Title</td>
<td>Parent Category</td>
<td>Sub Category</td>
<td>Excerpt</td>
</tr>
<tr>
<td>a title</td>
<td>USA custom category</td>
<td>Hawaii uder USA</td>
<td>this is a sample description.</td>
</tr>
</table>
我唯一的问题是显示子类别。有人可以帮帮我吗?
这是关于我如何显示父自定义类别的代码:
<?php
$term_list = '';
$terms = get_the_terms( $post->ID, 'origincity' );
foreach( $terms as $term ) {
$parent_term = get_term( $term->parent, 'origincity' );
$term_list .= $parent_term->name ;
}
echo $term_list;
?>
我尝试通过以下代码显示子类别:
<?php $terms2 = wp_get_post_terms($post->ID, 'origincity', array("fields" => "all"));
foreach ($terms2 as $term1) {
echo $term1->name.'<br>';
} ?>
但它也会返回父级。 :(
非常感谢您的帮助。感谢。
答案 0 :(得分:0)
我不建议使用您当前使用的方法,因为您对显示的内容没有足够的控制权。
将来使用get_posts();
使用起来非常简单!例如:
<ul>
<?php
global $post;
$args = array( 'posts_per_page' => 5, 'offset'=> 1, 'category' => 1 );
$myposts = get_posts( $args );
foreach( $myposts as $post ) : setup_postdata($post); ?>
<li>
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
</li>
<?php endforeach; ?>
</ul>
正如您所看到的,您可以设置显示的帖子的数量,类别和更多参数。
在此处了解有关参数的更多信息http://codex.wordpress.org/Template_Tags/get_posts
答案 1 :(得分:0)
已经通过此代码解决了问题:
function print_taxonomic_ranks( $terms ){
// set id variables to 0 for easy check
$order_id = $family_id = $subfamily_id = 0;
// get family
foreach ( $terms as $term ) {
if ( $family_id || $order_id != $term->parent )
continue;
$family_id = $term->term_id;
$family = $term->name;
}
// get subfamily
foreach ( $terms as $term ) {
if ( $subfamily_id || $family_id != $term->parent )
continue;
$subfamily_id = $term->term_id;
$subfamily = $term->name;
}
// output
echo "$subfamily";
}
谢谢你。