WP_User_Query аргументирует множественный выбор отображения результатов в WordPress - PullRequest
0 голосов
/ 21 января 2019

Я написал собственный поисковый запрос для поиска пользовательских метаданных инструктора, он работает с текстом типа ввода, но я хочу отсортировать результат для отображения с типом обучения как Обычный или Онлайн / оба выбранные с флажками Как получить и сохранить результаты флажков и передать значение в массив, чтобы отобразить отсортированные результаты, такие как выбранный флажок Регулярный на дисплее Регулярный результат учителя, Если выбран онлайн, показывать только онлайн Если выбрано, оба показывают все результаты. В настоящее время я добавил результаты метаданных для типа обучения в поле ввода для отображения, но я хочу отсортировать результаты, передав значения из флажков. Я добавил код в WordPress searchform.php Я не понимаю, как это реализовать.

вот мой код ...

Заранее спасибо.

<form role="search" method="get" id="searchform" class="form-inline" 
action="<?php echo home_url( '/' ); ?>">
<input type="checkbox" class="input-check" name="check_type" 
value="regular"  /><label>Regular</label>
<input type="checkbox" class="input-check" name="check_type" 
value="online" /><label>Online</label></br>

<input type="search" name="teacher" id="teacher" <?php if(is_search()) 
{ ?>value="<?php the_search_query(); ?>" <?php } else { ? 
>placeholder="Subjects / Skills"<?php } ?> /><br />

<input type="text" name="geolocate" value="" id="geo-id" class="geo- 
cl" placeholder="Location" />

<button type="submit" id="searchsubmit" value="Search">Search</button>
</form>


<?php
if( $_GET['teacher'] ) {

$search_term = sanitize_text_field( stripslashes( $_GET['teacher']));
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$query_types = get_query_var('check_type');
?>
<div class="search-query-result">
    <p>You are searching for : <?php echo $search_term; ?> </p>
</div>

<?php

if($_POST['check_type']) {
            $teaching_type = $_POST['check_type'];
            $teaching_type = implode(',',$teaching_type);
        }
        else { $teaching_type            = ''; }

// WP_User_Query arguments
$args = array (
'role'       => 'lp_teacher',
'order'      => 'ASC',
'orderby'    => 'display_name',
'number'     => 999999,
'paged'      => $paged,
'meta_query' => array(
    'relation' => 'OR',
    array(
        'key'     => 'nickname',
        'value'   => $search_term,
        'compare' => 'LIKE'
    ),
    array(
        'key'     => 'last_name',
        'value'   => $search_term,
        'compare' => 'LIKE'
    ),
    array(
        'key'     => 'subjects',
        'value'   => $search_term,
        'compare' => 'LIKE'
    ),
    array(
        'key'     => 'online',
        'value'   => $query_types,
        'compare' => 'LIKE'
    ),
  //  array(
  //      'key'     => 'regular',
  //      'value'   => $search_term,
 //        'compare' => 'LIKE'
 //    ),
    array(
        'key'     => 'address',
        'value'   => $search_term,
        'compare' => 'LIKE'
    ),
    array(
        'key'     => 'occupation',
        'value'   => $search_term,
        'compare' => 'LIKE'
    ),
    array(
        'key'     => 'standard',
        'value'   => $search_term,
        'compare' => 'LIKE'
    )
)
);

// Create the WP_User_Query object
$wp_user_query = new WP_User_Query( $args );

// Get the results
$instructors = $wp_user_query->get_results();

// Check for results
if ( ! empty( $instructors ) )
{

foreach ( $instructors as $instructor ){
    $instructor_info = get_userdata( $instructor->ID );

  //  $curuser = get_userdata($user->ID);
     $author_post_url=get_author_posts_url($instructor_info->ID, 
$instructor_info->nicename);
      echo "<div class='inst-post-search'>";?>
        <?php
            echo "<a 
href='/wordpress/teacherclone/profile/$instructor_info->display_name' 
title='.$instructor_info->display_name.'>";
            echo "<h2>$instructor_info->display_name</h2>";
            echo '</a>'; ?>
         <p><label>Occupation : </label> <?php echo $instructor_info- 
>occupation; ?></p>
         <div class="clearfix user-loop">
             <div class="profile-img">
               <?php
                 echo get_avatar($instructor_info->user_email, '80', 
$avatar);
               ?>
             </div>
             <div class="profile-desc">
               <?php
                 echo $instructor_info->description;
               ?>
             </div>
         </div>
         <div class="profile-addr">
              <label>Address : </label>
              <?php echo $instructor_info->address. '|' 
.$instructor_info->country; ?>
         </div>
         <div class="profile-sub">
               <label>Qualifiaction : </label>
               <?php echo $instructor_info->education; ?><br>
               <label>Teaching Standard / Board : </label>
               <?php echo $instructor_info->standard; ?><br>

              <label>Subjects : </label>
              <?php echo $instructor_info->subjects; ?>
         </div>

         <ul class="profile-ul">
           <li class="profile-ul-li profile-li-first-child"><i 
class="fa fa-laptop" aria-hidden="true"></i> <?php echo 
$instructor_info->onlineexp; ?></li>
           <li class="profile-ul-li"><i class="fa fa-address-card" 
aria-hidden="true"></i> <?php echo $instructor_info->totalexp; ?></li>
           <li class="profile-ul-li"><i class="fa fa-usd" aria- 
hidden="true"></i> <?php echo $instructor_info->fees; ?> / per hour. 
</li>
           <li class="profile-ul-li"><i class="fa fa-star" aria- 
hidden="true"></i> <?php if ($instructor_info->online == 'online'){  
echo $instructor_info->online; } else {echo NA;} ?> / <?php if 
($instructor_info->regular == 'regular'){ echo $instructor_info- 
>regular;}
           else {echo NA;} ?> </li>
           <li class="profile-ul-li profile-li-last-child"><?php 
education_lms_course_ratings() ?> </li>


         </ul>
         <?php if(get_post_type() == 'lp_course'){ echo 'lp_course'; 
}?>

         <?php
            //echo '<p>'.$curuser->education.'</p>';
            //echo '<p>'.$curuser->onlineexp.'</p>';
            //echo '<p>'.$curuser->totalexp.'</p>';
            //echo '<p>'.$curuser->fees.'</p>';
      echo '</div>';

//    echo $instructor_info->first_name;
}
}
else {
?>
<div class="search-query-noresult">
      <p><?php echo 'Sorry! No results found for your query. Please 
try with proper search keywords.';?></p>
</div>
<?php }}?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...