Comment inclure les brouillons et les publications privées dans les recherches d'administration avec SearchWP
SearchWP inclut une prise en charge intégrée pour améliorer les résultats de recherche dans la zone d'administration de WordPress en activant l'option Moteur d'administration dans les Paramètres du moteur sur la page Algorithmes SearchWP. Lorsque cette option est activée, SearchWP améliore les recherches effectuées dans le tableau de bord WordPress, telles que les recherches dans les écrans Articles ou Pages. Cependant, par défaut, SearchWP n'indexe et ne renvoie que le contenu publié. Les brouillons, les articles privés et les articles planifiés (futurs) sont exclus des résultats de recherche.
Ce comportement existe car SearchWP est principalement conçu pour alimenter les expériences de recherche sur le frontend, où le contenu non publié ne doit pas être accessible publiquement. Par conséquent, les statuts d'articles non publiés ne sont pas indexés sauf s'ils sont explicitement inclus. Si vous utilisez SearchWP pour rechercher du contenu dans la zone d'administration et que vous devez localiser des brouillons, des articles privés ou planifiés, vous pouvez étendre le comportement de SearchWP à l'aide d'un filtre personnalisé.
L'exemple suivant montre comment inclure les brouillons, les articles privés et les articles planifiés dans les recherches d'administration uniquement, tout en laissant les résultats de recherche du frontend inchangés :
| <?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 ); |
Vous pouvez ajouter ce code à l'aide d'un plugin de snippets de code tel que WPCode, ou en préparant un Plugin de personnalisations SearchWP.
Ce filtre modifie la liste des statuts d'articles que SearchWP prend en compte lors de l'indexation et de la recherche, mais uniquement lorsque la recherche est effectuée dans la zone d'administration de WordPress. Par conséquent, les brouillons, les articles privés et les articles planifiés des types d'articles inclus dans votre moteur SearchWP deviendront recherchables dans le tableau de bord. Ces articles n'apparaîtront pas dans les résultats de recherche du frontend, garantissant ainsi que le contenu non publié reste caché aux visiteurs du site.

