2014-10-11 77 views
0

我很漂亮在WP新,所以请原谅我我的无知即时通讯尝试学习。搜索post_like +搜索分类复选框在一个循环

所以我有两个Wp_Query(通过在搜索栏中输入和搜索分类复选框进行搜索),我不知道如何混合它们...如果一个作品第二不要和它的cricle。

<?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; ?> 

很长的和平代码,我粘贴循环以及以上,我有搜索框和分类列表。

此外,当我删除此:

// $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; 
}