我有一个显示自定义分类术语的逗号分隔列表的函数。
<?php
$product_terms = get_the_terms( get_the_ID(), \'XYZ\' );
// Make sure we have terms and also check for WP_Error object
if ( $product_terms
&& !is_wp_error( $product_terms )
) {
@usort( $product_terms, function ( $a, $b )
{
return strcasecmp(
$a->slug,
$b->slug
);
});
// Display your terms as normal
$term_list = [];
foreach ( $product_terms as $term )
$term_list[] = \'<a href="\' . get_term_link( $term ) . \'">\' . esc_html( $term->name ) . \'</a>\';
//$term_list[] = esc_html( $term->name );
echo implode( \', \', $term_list );
}
?>
我已经注释掉了显示未链接的术语的选项。。。
// $term_list[] = esc_html( $term->name );
如果我取消了上面一行的注释,那么我会注释掉这一行。。。
$term_list[] = \'<a href="\' . get_term_link( $term ) . \'">\' . esc_html( $term->name ) . \'</a>\';
我想插入一个基本条件,让您可以选择使用这两行中的任何一行。e、 g。。。
<?php if (is_user_logged_in()) { ?>
$term_list[] = \'<a href="\' . get_term_link( $term ) . \'">\' . esc_html( $term->name ) . \'</a>\';
<?php } else { ?>
$term_list[] = esc_html( $term->name );
<?php } ?>
最合适的回答,由SO网友:Magnus Guyra 整理而成
我不太清楚你的意思,因为你基本上已经回答了你自己的问题,正如我所理解的。
我看到的唯一一件事是,您应该删除if语句的每个部分,因为其中的代码也是php。
<?php
if (is_user_logged_in()) {
$term_list[] = \'<a href="\' . get_term_link( $term ) . \'">\' . esc_html( $term->name ) . \'</a>\';
} else {
$term_list[] = esc_html( $term->name );
}
?>