2015-10-18 100 views
0

我創建了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.'; 
       } 
       ?> 

回答

1

你搞亂if條件有點。

<?php 
    $user_display_name = $user->display_name; 
    $initial = strtolower($user_display_name[0]); 
    if ($initial == "a" || $initial == "b" || $initial == "c" ) { 
    .... 
?> 
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" ) { 
1

如前所述穆斌,你如果語法是錯誤的。你也可以使用正則表達式來檢查,如果用戶名與|| b ||Ç

開始這裏是你如何能做到這一點:如果匹配指定的模式被發現

if(preg_match('/^(a|A|b|B|c|C)/',$user->display_name)) 

的preg_match將返回true。給定的正則表達式將匹配任何以a,b或c開頭的字符串。

相關問題