Consultas de pesquisa lenta – Como excluir páginas, mídia, trechos, autores, postagens privadas?

Então eu tenho isso no Query Monitor :

AND (((zp_posts.post_title LIKE '%mercedes%') OR (zp_posts.post_excerpt LIKE '%mercedes%') OR (zp_posts.post_content LIKE '%mercedes%'))) AND zp_posts.post_type IN ('post', 'page', 'attachment') AND (zp_posts.post_status = 'publish' OR zp_posts.post_author = 1 AND zp_posts.post_status = 'private') ORDER BY zp_posts.post_title LIKE '%mercedes%' DESC, zp_posts.post_date DESC 

Gostaria que as consultas de buscas visassem apenas post_title e post_content, excluindo todas as outras partes. Alguma idéia para conseguir isso?

Solutions Collecting From Web of "Consultas de pesquisa lenta – Como excluir páginas, mídia, trechos, autores, postagens privadas?"

Você deve poder usar pre_get_posts para alterar a consulta. Gostaria de sugerir a criação de um plugin personalizado, de modo que, se você mudar seu tema, suas modificações continuarão sendo válidas.

Para começar, veja como você pode definir os tipos de postagem que estão sendo pesquisados:

 function search_filter($query) { if ( !is_admin() && $query->is_main_query() ) { if ($query->is_search) { $query->set('post_type', array( 'post' ) ); } } } add_action('pre_get_posts','search_filter'); 

Você continuaria adicionando $query->set statements dentro dos condicionais para personalizar ainda mais os campos a serem pesquisados.

Uma outra opção seria escrever uma consulta completamente personalizada e chamá-la da sua pesquisa em vez de usar a consulta interna do WP. Você pode querer comparar essa solução para ver se é mais rápido que a maneira pre_get_posts .