我在我的页脚(循环外)中展示了一篇来自自定义帖子类型的帖子,并使用高级自定义字段插件来实现这一点。这是我正在使用的代码:
<h5>Featured Movie</h5>
<?php query_posts(array(
\'posts_per_page\' => 1,
\'post_type\' => \'movies\',
\'orderby\' => \'post_date\',
\'meta_key\' => \'featured_movie\',
\'meta_compare\' => \'=\',
\'meta_value\' => 1,
\'paged\' => $paged
)
); ?>
<?php if ( have_posts() ) while ( have_posts() ) : the_post(); ?>
<div class="popcontainer">
<div class="popthumb"><?php the_post_thumbnail(\'full-thumbnail\');?></div>
<div class="clear"></div>
"<?php the_content(); ?>"
</div>
<?php endwhile; ?>
<?php wp_reset_query(); ?>
虽然这正是我所需要的,但我也需要一些代码来显示&;链接到与当前任何帖子相关的术语。然而,我的代码要求我指定一个分类法,我认为这不是办法,因为它太有限了&;我希望能够在
movies
自定义帖子类型,而不管它们有什么分类法和术语。我现在掌握的密码是
<?php // Get terms for post
$terms = get_the_terms( $post->ID , \'genre\' );
// Loop over each item since it\'s an array
if ( $terms != null ){
foreach( $terms as $term ) {
$term_link = get_term_link( $term, \'genre\' );
// Print the name method from $term which is an OBJECT
echo \'<li><a href="\' . $term_link . \'">\' . $term->name . \'</a></li>\';
// Get rid of the other data stored in the object, since it\'s not needed
unset($term);
} } ?>
如你所见,我必须具体说明
genre
作为分类法,以便在我的网站上显示它&;为了这个示例,但我不想指定分类法bc这样做会遗漏我喜欢的所有其他分类法
ratings
或
release date
. 当然,我可以将我的每一个分类法都放入代码中,以确保它们都包含在内,但必须有一种更简单的方法。此外,我如何确保显示与帖子相关的每个术语。
SO网友:Milo
使用get_object_taxonomies
将所有分类法注册到特定的post类型。
而且don\'t use query_posts
用于辅助查询。或者永远,实际上。使用WP_Query
.
$args = array(
\'posts_per_page\' => 1,
\'post_type\' => \'movies\',
\'orderby\' => \'post_date\',
\'meta_key\' => \'featured_movie\',
\'meta_compare\' => \'=\',
\'meta_value\' => 1,
);
$movie = new WP_Query( $args );
if( $movie->have_posts() ){
while( $movie->have_posts() ){
$movie->the_post();
// your post template tags
the_title();
the_post_thumbnail(\'full-thumbnail\');
// taxonomies/terms
if( $taxonomies = get_object_taxonomies( \'movies\' ) ){
foreach( $taxonomies as $taxonomy ){
if( $terms = get_the_terms( $post->ID , $taxonomy ) ){
foreach( $terms as $term ){
echo \'<li><a href="\' . get_term_link( $term ) . \'">\' . $term->name . \'</a></li>\';
}
}
}
}
}
wp_reset_postdata();
}