显示带有链接的已分配术语

时间:2014-10-03 作者:pendjer

我想在页面的侧栏中以小部件的形式显示包装在链接/锚标记中的产品指定术语。我没有获得正确的标记URL。代码返回已访问的产品URL,而不是列出的标记URL。

下面是代码中有问题的部分。正确使用什么get_the_terms()?

$custom_terms = get_the_terms( 0, \'product_tag\' );
if ( $custom_terms ) {
    foreach ( $custom_terms as $custom_term ) {
        echo \'<a href="\'
            . esc_url( $term_link )
            . \'" style="font-size: 8pt;">\'
            . $custom_term->name
            . \'</a>\';
    }
}
我想是我做错了什么esc_url( $term_link ), 但是什么呢?

2 个回复
最合适的回答,由SO网友:kaiser 整理而成

请记住get_the_terms() 可以是以下类型

array|WP_Error
您的代码段应该检查返回的类型是否正确

$terms = get_the_terms( 0, \'product_tag\' );
if (
    ! is_wp_error( $terms )
    AND is_array( $terms )
    AND ! empty( $terms )
    )
{
    foreach( $terms as $term )
        printf(
            \'<a href="%s" style="font-size: 8pt; margin-right:5px;">%s</a>\',
            esc_url( get_term_link( $term ) ),
            $term
        );
}

SO网友:pendjer

多亏了马克,我成功地解决了这个问题。

更新:由于Kaiser,部分代码已经更新。这是最后的代码。

<?php 

$custom_terms = get_the_terms(0,\'product_tag\');
if (
          ! is_wp_error( $custom_terms )
          AND is_array( $custom_terms )
          AND ! empty( $custom_terms )
         )
          {
            foreach ($custom_terms as $custom_term) {

            $term_link = get_term_link( $custom_term );
                echo \'<a href="\'. esc_url( $term_link ). \'" style="font-size: 8pt; margin-right:5px;">\'.$custom_term->name.\'</a>\';
            }
        }

        ?>

结束

相关推荐

如何在前端使用wp_Terms_Checklist

使用获取致命错误wp_terms_checklist() 在前端我的一个高级搜索表单中。Fatal error: 调用未定义函数wp_terms_checklist()具有search I got 这会产生问题,因为该函数仅用于管理面板,顺便说一句,不推荐使用。<?php $args = array( \'descendants_and_self\' => 0, \'selected_cats\' => false,