dshgdhdfcas30210 2017-08-31 23:00
浏览 75
已采纳

Wordpress wp_get_post_terms函数不能在模板中工作

I have made a function using wp_get_post_terms

function subcategory() {
$args = array(
    "fields" => "all",
    'taxonomy' => 'videos_category',
    'orderby'           => 'ID',
    'order'             => 'DESC',
);
$categories = wp_get_post_terms($post->ID, 'videos_category', $args);

if ( ! empty( $categories ) ) {
    echo $categories[0]->name;  
}}

And using Laravel blade templating I call the function like so:

            @if( App\subcategory() )
                <li class="pill-list__pill--accent">
                    <span>{{ App\subcategory() }}</span>
                </li>
            @endif

I'm using a namespace App, hence the App.. The code I have below works fine if I have it in the template itself using Php tags... not sure why I can't call it in a function though.

Any help would be really appreciated, thanks!

  • 写回答

1条回答 默认 最新

  • dqq22391 2017-09-01 07:21
    关注

    Blade's {{ }} is shorthand for echo. So whatever is inside there should be a variable that is a string or a function which returns a string. Your function actually echos. So inside PHP tags it would work, but not in Blade echo tags.

    Change your function to return your string, not echo it:

    return $categories[0]->name;
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?