我创建了一个if语句,用于检查用户是否以a,b或c开头显示名称字母。问题是,它不仅显示那些用户,还显示所有用户。我的if语句出了什么问题?我能做些不同的事吗?
<?php
$args = array(
'exclude' => array( 1 ),
'order' => 'ASC',
);
$user_query = new WP_User_Query( array( $args ) ); ?>
<?php if ( ! empty( $user_query->results ) ) {
foreach ( $user_query->results as $user ) { ?>
<?php
$args = array(
'size' => 300,
);
$img_url = get_avatar_url($user->user_email, $args)
?>
<?php
$user_display_name = $user->display_name;
if ( strtolower($user_display_name[0]) == "a" || "b" || "c" ) {
?>
<a href="<?php echo 'http://' . $user->user_login . '.domain.com' . '"'; ?>">
<div class="user" style="background-image:url(<?php echo $img_url; ?>);">
<div class="user-avatar">
<img alt="<?php echo $user->display_name; ?>" class="avatar avatar-90 photo avatar-custom" height="90" src="<?php echo $img_url; ?>">
</div>
<div class="user-info">
<h3 class="user-title"><?php echo $user->display_name; ?></h3>
<p class="user-url">
<a href="<?php echo 'http://' . $user->user_login . '.domain.com' . '">'; ?> <?php echo $user->user_login . '.domain.com'; ?></a>
</p>
</div>
</div>
</a>
<?php } ?>
<?php } ?>
<?php } else {
echo 'No users found.';
}
?>
答案 0 :(得分:1)
你有点弄乱if
条件。
<?php
$user_display_name = $user->display_name;
$initial = strtolower($user_display_name[0]);
if ( $initial == "a" || $initial == "b" || $initial == "c" ) {
....
?>
答案 1 :(得分:1)
请学习php语法。这些条件总是评估为真:
if ( strtolower($user_display_name[0]) == "a" || "b" || "c" ) {
至少你需要的是:
if ( strtolower($user_display_name[0]) == "a"
|| strtolower($user_display_name[0]) == "b"
|| strtolower($user_display_name[0]) == "c" ) {
答案 2 :(得分:1)
正如Mubin所说,你的if语法错了。您还可以使用正则表达式来检查用户名是否以|| b || c
开头以下是如何做到的:
if(preg_match('/^(a|A|b|B|c|C)/',$user->display_name))
如果找到指定模式的匹配项,preg_match将返回true。给定的正则表达式将匹配以a,b或c开头的任何字符串。