Pre_Get_Posts操作:在同一查询中使用不同的搜索短语按POST_TITLE和POST_CONTENT进行搜索

时间:2017-01-20 作者:fly

如何使用pre\\u get\\u post操作中的“set”方法,将一个搜索字段设置为在post\\u title中搜索,将另一个搜索字段设置为仅在post\\u内容中搜索?

1 个回复
SO网友:Md. Mrinal Haque

在函数中添加以下代码。php自定义WP搜索title 仅限

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( 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\', \'search_by_title_only\' );

<在中搜索post content 是WP中的默认搜索选项

相关推荐

Media searching ignored

我们的网站使用WordPress,有很多媒体文件。我们网站的媒体名称格式如下[Car brand\'s name]-[number].jpg, 例如Tesla-1.jpg 或Aston Martin-3.jpg. 因此,我们可以通过搜索文章的名称轻松找到文章的特定媒体。但突然间,我们找不到媒体。我们正在尝试搜索名称为的媒体,但搜索结果不变。(不搜索任何内容时的媒体屏幕)(搜索Aston Martin时的媒体屏幕)当然,在填充搜索文本框后,它会显示一个加载图标,但结果总是一样的。为什么会发生这种情况?更新+