2014-10-11 2 views
0

Im довольно новый в WP, так что простите мне мое невежество, которое я пытаюсь изучить.Поиск post_like + поиск по таксономии флажки в одном цикле

Итак, у меня есть два Wp_Query (поиск по типу в поисковой строке и поиск по таксономии), и я не знаю, как их смешивать ... Если один второй работает и его крик.

<?php 

    global $search_ingr; 

    if(isset($search_ingr)) { 
     global $loop; 
    } else { 

    $query_params = getQueryParams(); 
     if(isset($query_params['search'])) { 
      $query_params['post_title_like'] = $query_params['search']; 
      unset($query_params['search']); 
     } 
    $loop = new WP_Query(array(
     'numberposts' => 60, 
     'posts_per_page' => 60, 
     'orderby' => 'title', 
     'order' => 'ASC', 
     'post_type' => 'products', 
     'post_status' => 'publish' 
     )); 
    } 
?> 


<?php if(isset($search)): ?> 
    <div class="search-matches"><h4>Wyniki wyszukiwania:</h4><hr></div> 
<?php endif; ?> 

<?php if ($loop->have_posts()) :?> 
<?php while($loop->have_posts()) : $loop->the_post(); ?> 

    <span class="tooltip tooltip-effect-4"> 
    <span class="tooltip-item"> 
     <div class="product"> 
      <a href="<?php the_permalink(); ?>"> 
       <div class="product-thumbnail"><span class="helper"></span><?php the_post_thumbnail(); ?></div> 
       <div class="product-name"><?php the_title(); ?></div> 
      </a> 
     </div> 
    </span> 
    <a href="<?php the_permalink(); ?>"> 
    <span class="tooltip-content clearfix"> 
     <?php the_post_thumbnail(); ?> 
     <span class="tooltip-text"><?php the_title(); ?></span> 
    </span> 
    </a> 
    </span> 

<?php endwhile; ?> 
<?php endif; ?> 

Довольно долго мир кода, Im вставляя его с петлей, а также и выше, что у меня есть окно поиска и список таксономии.

Кроме того, когда я удаляю это:

// $loop = new WP_Query(array(
    // 'numberposts' => 60, 
    // 'posts_per_page' => 60, 
    // 'orderby' => 'title', 
    // 'order' => 'ASC', 
    // 'post_type' => 'products', 
    // 'post_status' => 'publish' 
    // )); 

Оба поиск отлично работает (но я не могу контролировать пост порядок и количество сообщений). Любая помощь по этому поводу?

ответ

0

Правильный способ изменения цикла wordpress будет таким. Попробуйте вместо первого блока PHP вверху:

<?php 
    $search = get_query_var('s'); 
    $loop = new WP_Query(array(
     'numberposts' => 60, 
     'posts_per_page' => 60, 
     'orderby' => 'title', 
     'order' => 'ASC', 
     'post_type' => 'products', 
     'post_status' => 'publish', 
     's' => $search 
    )); 
?> 

Потенциальная проблема заключается в том, что вы используете функции и параметры, которые не являются родными для WordPress - getQueryParams() не является функцией WordPress и Функция WP_Query не принимает параметр с именем 'post_title_like'. Если этот код работает, вы можете использовать какой-либо плагин для функции поиска, и в этом случае вам придется переопределить поведение плагина, а не запрос Wordpress по умолчанию.

0

Большое спасибо! Очень ценю вашу помощь, но это не помогло решить мою проблему. я попробую другой способ Этот кусок кода отлично работать как для поиска, но мне нужно, чтобы изменить количество постов выше предела 10 (вот почему я начал возиться с этим кодом):

<?php 

    global $search_ingr; 

    if(isset($search_ingr)) { 
     global $loop; 
    } else { 

    $query_params = getQueryParams(); 
    if(isset($query_params['search'])) { 
     $query_params['post_title_like'] = $query_params['search']; 
     unset($query_params['search']); 
     } 

    $loop = new WP_Query($query_params); 

    } 

?> 

И в getQueryParams():

function getQueryParams(){ 
    global $query_string; 
    $parts = explode('&', $query_string); 

    $return = array(); 
    foreach($parts as $part){ 
     $tmp = explode('=', $part); 
     $return[$tmp[0]] = trim(urldecode($tmp[1])); 
    } 

    return $return; 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^