php – 在WordPress中显示当前的帖子自定义分类
|
我已经在WordPress上创建了自定义分类法,我想在列表中显示帖子上的当前帖子分类.
我正在使用以下代码显示名为“Job Discipline”的自定义分类: <ul>
<?php $args = array('taxonomy' => 'job_discipline'); ?>
<?php $tax_menu_items = get_categories( $args );
foreach ( $tax_menu_items as $tax_menu_item ):?>
<li>
Job Discipline: <a href="<?php echo get_term_link($tax_menu_item,$tax_menu_item->taxonomy); ?>">
<?php echo $tax_menu_item->name; ?>
</a>
</li>
<?php endforeach; ?>
</ul>
这只是我想列出的许多分类法之一. 问题是上面的代码显示的是所有“职务规则”,其中至少有一个职位而不是当前的职位分类. 我该如何解决这个问题?
如何显示当前的分类后和术语
以下是来自Codex的修改后的代码(请参阅下面的链接),该代码将显示当前帖子的所有分类法及附加条款: <?php
// get taxonomies terms links
function custom_taxonomies_terms_links() {
global $post,$post_id;
// get post by post id
$post = &get_post($post->ID);
// get post type by post
$post_type = $post->post_type;
// get post type taxonomies
$taxonomies = get_object_taxonomies($post_type);
$out = "<ul>";
foreach ($taxonomies as $taxonomy) {
$out .= "<li>".$taxonomy.": ";
// get the terms related to post
$terms = get_the_terms( $post->ID,$taxonomy );
if ( !empty( $terms ) ) {
foreach ( $terms as $term )
$out .= '<a href="' .get_term_link($term->slug,$taxonomy) .'">'.$term->name.'</a> ';
}
$out .= "</li>";
}
$out .= "</ul>";
return $out;
} ?>
这是这样使用的: <?php echo custom_taxonomies_terms_links();?> 演示输出 如果当前帖子具有分类法国家和城市,则输出可能如下所示: <ul>
<li> country:
<a href="http://example.com/country/denmark/">Denmark</a>
<a href="http://example.com/country/russia/">Russia</a>
</li>
<li> city:
<a href="http://example.com/city/copenhagen/">Copenhagen</a>
<a href="http://example.com/city/moscow/">Moscow</a>
</li>
</ul>
参考 食典委的原始代码示例: http://codex.wordpress.org/Function_Reference/get_the_terms#Get_terms_for_all_custom_taxonomies 希望这有帮助 – 我相信你可以适应你的项目;-) 更新
以下是实现此目的的一个修改: function custom_taxonomies_terms_links() {
global $post;
// some custom taxonomies:
$taxonomies = array(
"country"=>"My Countries: ","city"=>"My cities: "
);
$out = "<ul>";
foreach ($taxonomies as $tax => $taxname) {
$out .= "<li>";
$out .= $taxname;
// get the terms related to post
$terms = get_the_terms( $post->ID,$tax );
if ( !empty( $terms ) ) {
foreach ( $terms as $term )
$out .= '<a href="' .get_term_link($term->slug,$tax) .'">'.$term->name.'</a> ';
}
$out .= "</li>";
}
$out .= "</ul>";
return $out;
}
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
