Ajouter le contenu PDF à l'extrait du résultat de recherche
L'une des fonctionnalités les plus puissantes de SearchWP est la capacité d'attribuer le poids d'un résultat d'un article à un autre.
Par exemple : lorsque vous attachez des médias WordPress à un article, cet article est le « parent » de ce fichier média. Vous pouvez indiquer à SearchWP que lorsqu'il trouve un poids de résultat de recherche pour les médias, il ne doit pas créer de lien vers la page d'attachement elle-même (que peu de gens utilisent de toute façon) et transférer plutôt ce poids de recherche au parent.
Lorsque vous avez configuré SearchWP de cette manière, les médias sont considérés autant que tout autre article, mais les entrées de médias ne seront jamais liées directement sur les pages de résultats de recherche car vous avez transféré tout le poids des mots-clés au parent.
Selon le contenu de votre site, cela peut entraîner un flux de travail plus naturel car votre visiteur est dirigé vers l'article dans lequel un PDF est lié au lieu du PDF lui-même.
Ajout automatique d'extraits PDF contextuels à l'extrait
Vous pouvez aller plus loin avec cette intégration en ajoutant automatiquement un extrait contextuel de chaque PDF « enfant » à l'extrait de votre article dans les pages de résultats de recherche, ce qui indiquera à vos visiteurs (avant qu'ils n'aient cliqué sur l'article parent) qu'il y a eu une correspondance sur un PDF lié dans cet article.
All hooks should be added to your custom SearchWP Customizations Plugin.
| <?php | |
| // Add child PDF snippets to SearchWP result excerpt. | |
| // @link https://searchwp.com/documentation/knowledge-base/append-pdf-content-to-search-result-excerpt/ | |
| add_filter( 'get_the_excerpt', function( $excerpt ) { | |
| global $post; | |
| if ( ! $post instanceof WP_Post || ! is_search() || post_password_required() || $post->searchwp_excerpt_found ) { | |
| return $excerpt; | |
| } | |
| $post->searchwp_excerpt_found = true; | |
| $attached_pdfs = get_attached_media( 'application/pdf', $post->ID ); | |
| if ( empty( $attached_pdfs ) ) { | |
| return $excerpt; | |
| } | |
| // The number of words to include in PDF excerpt. | |
| $pdf_excerpt_length = 20; | |
| foreach ( $attached_pdfs as $attached_pdf ) { | |
| $source = \SearchWP\Utils::get_post_type_source_name( 'attachment' ); | |
| $pdf_entry = new \SearchWP\Entry( $source, $attached_pdf->ID, false, false ); | |
| $pdf_excerpt = \SearchWP\Sources\Post::get_global_excerpt( | |
| $pdf_entry, get_search_query(), $pdf_excerpt_length | |
| ); | |
| if ( \SearchWP\Settings::get( 'highlighting', 'boolean' ) ) { | |
| $pdf_excerpt = \SearchWP\Highlighter::apply( $pdf_excerpt, get_search_query() ); | |
| } | |
| if ( ! empty( $pdf_excerpt ) ) { | |
| $pdf_label = get_the_title( $attached_pdf->ID ); | |
| $excerpt .= '<br /><br /><strong>' . wp_kses_post( $pdf_label ) | |
| . '</strong>: ' . wp_kses_post( $pdf_excerpt ); | |
| } | |
| } | |
| return $excerpt; | |
| } ); |
Lorsque ce filtre est ajouté, votre extrait standard sera affiché sur les pages de résultats de recherche, mais si un article a des PDF enfants contenant des termes de recherche, ces PDF spécifiques seront signalés par leur titre avec un extrait contextuel de support de ce PDF, incluant au moins un des termes de recherche. Ces signalements sont ajoutés à l'extrait d'origine, vous ne perdez donc pas ces précieuses informations dans ce processus.


