wordpress get_the_terms不起作用

时间:2013-11-12 13:35:43

标签: php wordpress

这是我在投资组合中展示我的工作的查询

<?php

    // The Query
    $the_query = new WP_Query( array( 'post_type'=> 'portfolio' ) );

    // The Loop
    if ( $the_query->have_posts() ) {
        while ( $the_query->have_posts() ) {
            $the_query->the_post();

            $thumb = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), 'thumbnail' );
            $medium = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), 'large' );
            $url_thumb = $thumb['0'];
            $url_medium = $medium['0'];

            $option = '<li>';
            $option .= '<a data-value="' . get_the_terms($post->ID, 'portfolio' ) . '" data-largesrc="' . $url_medium .'" data-title="' . get_the_title() .'" data-description="' . get_the_content() .'">';
            $option .= '<img src="' . $url_thumb . '" alt="img01" />';
            $option .= '</a>';
            $option .= '</li>';
            echo $option;
        }
    } else {

    }
    /* Restore original Post Data */
    wp_reset_postdata();
    ?>

问题出在这里,我需要提取工作类别的数据值

data-value="' . get_the_terms( 'portfolio', $post->ID ) . '"

我认为我使用的代码是错误的,因为如果我放在网上我会截断代码并且我没有显示任何内容

2 个答案:

答案 0 :(得分:3)

您的代码表明portfolio是自定义帖子类型,而不是自定义分类,但您将其作为get_the_terms()的分类参数传递。这些不一样 - 帖子类型是内容类型(例如帖子,页面),分类法是组织和分组事物的方式(例如标签,类别)。

您需要将自定义分类法的slug作为$taxonomy参数传递,而不是自定义帖子类型portfolio的slug。我不知道你在查询什么分类法,但它可能类似于portfolio_categories或类似的东西。例如,如果您使用默认的category分类法和帖子,则需要get_the_terms($post->ID, 'category');

答案 1 :(得分:0)

您使用的语法错误,正确的语法是

     <?php get_the_terms( $id, $taxonomy ); ?>