WordPress的WP_Query仅搜索标题

【WordPress的WP_Query仅搜索标题】我正在使用带有” s” 参数的WP_Query, 但是它搜索帖子中的所有字段, 并且我只想仅搜索帖子中的标题。不知道正确的方法是什么?

$args = array( 's' => $_POST['k'], 'post_type' => 'my_post', "nopaging"=> true, 'meta_query' => array() ); $my_query = new WP_Query($args);

#1我们需要为wordpress” posts_search” 添加过滤器。
在活动主题的functions.php文件中添加以下代码, 会将WordPress搜索结果限制为仅包含页面和帖子标题。
//将搜索限制为仅发布标题
function ni_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( like_escape( $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', 'ni_search_by_title_only', 500, 2 );

#2一件事有趣。如果要在产品上使用此功能, 则应使用get_product_search_form挂钩。
add_filter( 'get_product_search_form', 'ni_search_by_title_only', 500, 2 );

这样, 仅应通过在标题中搜索来给出结果。

    推荐阅读