2017-07-27 60 views
0

我想仅根据页面和帖子标题进行搜索。可能吗? 在头文件搜索代码低于如何仅在wordpress中搜索帖子和页面标题?

<form method="get" class="search-form" action="<?php echo esc_url(home_url('/')); ?>"> 
    <input type="search" class="form-control" placeholder="<?php esc_attr_e('Search...', 'consulting'); ?>" value="<?php echo esc_attr(get_search_query()); ?>" name="s" /></div> 
    <button type="submit" style="height:7.5vh;"><i class="fa fa-search"></i></button> 
</form> 
+0

这将取决于'get_search_query()'函数,它在搜索什么我会想象 –

+0

这是WordPress的搜索,请帮我找只标题 –

+0

ü意味着这个? https://wordpress.stackexchange.com/questions/96369/search-post-title-only – Hash

回答

0

可以在职位和页面标题搜索,请添加以下代码的functions.php

function __search_by_title_only($search, &$wp_query) 
{ 
    global $wpdb; 
    if(empty($search)) { 
     return $search; // skip processing - no search term in query 
    } 
    $q = $wp_query->query_vars; 
    $n = !empty($q['exact']) ? '' : '%'; 
    $search = ''; // this must be empty first 
    $searchand = ''; 
    foreach ((array)$q['search_terms'] as $term) { 
     $term = esc_sql($wpdb->esc_like($term)); 
     $search .= "{$searchand}($wpdb->posts.post_title LIKE '{$n}{$term}{$n}')"; 
     $searchand = ' AND '; 
    } 
    if (!empty($search)) { 
     $search = " AND ({$search}) "; 
     if (!is_user_logged_in()) 
     $search .= " AND ($wpdb->posts.post_password = '') "; 
    } 
    return $search; 
} 
add_filter('posts_search', '__search_by_title_only', 500, 2); 
+0

我尝试这个代码,但它不工作。仍然显示标题和描述。我只想显示标题。 –

+0

以下代码在标题中搜索,如果您想在搜索结果中显示标题。你必须建立一个搜索页面(search.php),见https://codex.wordpress.org/Creating_a_Search_Page @Anilbhadula – mshomali

+0

没有办法获得标题搜索结果。如果我不会创建新的搜索模板,请告诉我另一种搜索方式 –

0
function __search_by_title_only($search, &$wp_query){ 

    global $wpdb; 

    if(empty($search)) { 

    return $search; // skip processing - no search term in query 

    } 

    $q = $wp_query->query_vars; 

    $n = !empty($q['exact']) ? '' : '%'; 

    $search = ''; 

    $searchand = ''; 

    foreach ((array)$q['search_terms'] as $term) { 

    $term = esc_sql($wpdb->esc_like($term)); 

    $search .= "{$searchand}($wpdb->posts.post_title LIKE '{$n}{$term}{$n}')"; 

    $searchand = ' AND '; 

} 

    if (!empty($search)) { 

    $search = " AND ({$search}) "; 

    if (!is_user_logged_in()) 
     $search .= " AND ($wpdb->posts.post_password = '') "; 

} 

    return $search; 

} 

    add_filter('posts_search', '__search_by_title_only', 500, 2); 

在添加此代码的主题functions.php文件

0

在search.php中使用以下查询来覆盖默认搜索功能或者您可以使用自定义模板

$args = array(
      'post_type' => 'post', 
      's' => $keyword, 
      'cat' => $catSearchID, 
      'tag' => $tag-slug, 
      'posts_per_page' => -1, 
      'location' => $post_location_search , 
     ); 

$wp_query = new WP_Query($args); 
+0

在wordpress有searchform.php,所以在查询执行开始之前,把代码 –

+0

。 – GNANA

相关问题