Como Incluir Posts Rascunho e Privados em Pesquisas de Administrador com SearchWP
SearchWP inclui suporte integrado para melhorar os resultados de busca na área de administração do WordPress, habilitando a opção Admin Engine nas Configurações do Motor na página Algoritmos do SearchWP. Quando esta opção está habilitada, SearchWP aprimora as buscas realizadas dentro do painel do WordPress, como buscas nas telas de Posts ou Páginas. No entanto, por padrão, SearchWP apenas indexa e retorna conteúdo publicado. Posts rascunho, privados e agendados (futuros) são excluídos dos resultados de busca.
Esse comportamento existe porque o SearchWP é projetado principalmente para potencializar experiências de busca no frontend, onde o conteúdo não publicado não deve ser publicamente acessível. Como resultado, status de posts não publicados não são indexados, a menos que sejam explicitamente incluídos. Se você depende do SearchWP para buscar conteúdo na área de administração e precisa localizar posts rascunho, privados ou agendados, você pode estender o comportamento do SearchWP usando um hook de filtro personalizado.
O exemplo a seguir demonstra como incluir posts rascunho, privados e agendados em buscas apenas de admin, mantendo os resultados de busca do frontend inalterados:
| <?php | |
| // Search draft, private, and scheduled posts in admin side only | |
| add_filter( 'searchwp\post_stati', function ( $post_stati, $args ) { | |
| $is_search = is_search() || isset( $_REQUEST['s'] ); | |
| $is_swp_search = isset( $_REQUEST['swps'] ); | |
| $is_admin = is_admin() && ! wp_doing_ajax(); | |
| // Do not modify post statuses on SearchWP results pages and normal frontend searches | |
| if ( ($is_swp_search || $is_search) && ! $is_admin ) { | |
| return $post_stati; | |
| } | |
| // Include draft, private, and scheduled (future) posts in admin search | |
| return array_unique( | |
| array_merge( $post_stati, [ 'draft', 'private', 'future' ] ) | |
| ); | |
| }, 20, 2 ); |
Você pode adicionar este código usando um plugin de snippet de código como WPCode, ou preparando um Plugin de Customizações do SearchWP.
Este hook modifica a lista de status de posts que o SearchWP considera durante a indexação e a busca, mas apenas quando a busca é realizada na área de administração do WordPress. Como resultado, posts rascunho, privados e agendados de tipos de post incluídos no seu motor SearchWP se tornarão pesquisáveis no painel. Estes posts não aparecerão nos resultados de busca do frontend, garantindo que o conteúdo não publicado permaneça oculto dos visitantes do site.

