在自定义帖子类型下显示帖子的URL和名称的PHP代码

时间:2013-11-03 作者:digitaldoll

我在我的页脚(循环外)中展示了一篇来自自定义帖子类型的帖子,并使用高级自定义字段插件来实现这一点。这是我正在使用的代码:

<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这样做会遗漏我喜欢的所有其他分类法ratingsrelease date. 当然,我可以将我的每一个分类法都放入代码中,以确保它们都包含在内,但必须有一种更简单的方法。此外,我如何确保显示与帖子相关的每个术语。

1 个回复
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();
}

结束

相关推荐

GET_POST_TERMS未按预期工作

我有一个称为“水果”的自定义帖子类型,在这个类型下,我有一个称为“水果类别”的层次分类法当我在Fruit下创建一个新帖子时,我可以将其分配到一个“术语”,就像您在普通帖子类别下一样,但在Fruit Categories分类下。我在Fruit上增加了三个职位,每个职位分别分配给一个任期;“苹果”、“梨”和“香蕉”。所有这些都很好,但现在我想创建一个归档页面,简单地列出UL中的术语,用于自定义帖子类型,如下所示;我的网站。玉米/水果我面临的问题是,我使用的每个查询似乎只返回第一个词Apples。其他两个没有显