我有以下echo语句:
echo '<li><a href="'. esc_url(add_query_arg( 'booking-id', $the_query->post->ID, site_url( '/pay-deposit/' ) )) .'">Pay deposit</a></li>';
我想在参数= 1
时将“禁用”类添加到链接中以下是我尝试使用三元运算符
$is_deposit_paid = get_post_meta( $the_query->post->ID, 'deposit_paid', true );
echo '<li><a '.( $is_deposit_paid = 1) ? "disabled" .' href="'. esc_url(add_query_arg( 'booking-id', $the_query->post->ID, site_url( '/pay-deposit/' ) )) .'">Pay deposit</a></li>';
但是这会产生语法错误。我该怎么写出来呢?
答案 0 :(得分:3)
有三个问题需要解决:
三元运算符需要... 3个参数(惊喜!),所以在第二个之后,你需要在:
的情况下添加else
和你想要的字符串。
在构建字符串之前应用点运算符之前,应将整个三元表达式放在括号中(而不是条件)。
您需要进行比较,而不是分配(==
代替=
)
所以这样做:
$is_deposit_paid = get_post_meta( $the_query->post->ID, 'deposit_paid', true );
echo '<li><a '.( $is_deposit_paid == 1 ? "disabled" : "") .
' href="'. esc_url(add_query_arg( 'booking-id', $the_query->post->ID,
site_url( '/pay-deposit/' ) )) .
'">Pay deposit</a></li>';
答案 1 :(得分:1)
在函数调用之后立即使用变量,类被“禁用”或没有(“”):
$is_deposit_paid = get_post_meta( $the_query->post->ID, 'deposit_paid', true );
$class = ($is_deposit_paid)?"disabled":"";
echo "<li><a $class href='". esc_url(add_query_arg( 'booking-id', $the_query->post->ID, site_url( '/pay-deposit/' ) )) ."'>Pay deposit</a></li>";
如果您只需要课程,您甚至可以立即检查函数调用:
$class = (get_post_meta( $the_query->post->ID, 'deposit_paid', true ))?"disabled":"";