1

我现在很笨……</p>

print_r($terms);

这样做……</p>

Array
(
    [7] => stdClass Object
        (
            [term_id] => 7
            [name] => Testwhatever
            [slug] => testwhatever
            [term_group] => 0
            [term_taxonomy_id] => 7
            [taxonomy] => event_type
            [description] => 
            [parent] => 0
            [count] => 2
            [object_id] => 8
        )

)

我怎么能print蛞蝓?我认为 printprint($terms->slug)应该完成这项工作,但它说:“试图获得非对象的属性”

更新:

function get_event_term($post) {
    $terms = get_the_terms( (int) $post->ID, 'event_type' );
    if ( !empty( $terms ) ) {
        print_r($terms);
        return $terms[7]->slug;
    }
}
4

6 回答 6

3

它是一个对象数组(即使它在索引“7”处仅包含一个条目),而不是单个对象

echo $terms[7]->slug;

与多个“事物

foreach ($terms as $term) echo $term->slug;
于 2012-07-18T09:17:20.887 回答
2

尝试

print_r($terms[7]->slug);

您的对象 stdclass 在数组 [7] 偏移量中。

于 2012-07-18T09:17:14.390 回答
2

或者,让事情复杂一点:

array_walk($terms, function($val,$key) use(&$terms){ 
    var_dump($val->slug);
});
于 2012-07-18T09:26:54.277 回答
0

试试这个。

print ($terms[7]->slug);
于 2012-07-18T09:17:42.800 回答
0

print_r ($terms[7]->slug)对我来说看起来很合乎逻辑,因为它是一个对象数组

更新

由于您不确定应该返回多少项目get_event_term,因此您应该返回一个数组。

function get_event_term($post) {
    $aReturn = array();
    $terms = get_the_terms( (int) $post->ID, 'event_type' );
    if ( !empty( $terms ) ) {
        print_r($terms);
        foreach($terms as $term){ // iterate through array of objects
            $aReturn[] = $term->slug; // get the property that you need
        }
    }
    return $aReturn;
}
于 2012-07-18T09:17:55.590 回答
0

函数使用wp_parse_args系统来管理它的单个$args参数,可以给它你想要的任何值。在这种情况下,$args 存储了详细的显示覆盖,这是在许多 WordPress 函数中发现的模式。

$args = wp_parse_args( $args, $term->name );
echo $arg[157]['term_id']; //output 157
echo $arg[157]['name'];  //output Entertainment

对我来说很好用更多细节

http://codex.wordpress.org/Function_Reference/wp_parse_args

于 2015-01-22T20:41:31.733 回答