SearchWP Documentation

Visualizza la guida all'installazione, sfoglia la Knowledge Base, scopri i numerosi hook di SearchWP

Aggiungi il contenuto del documento al contenuto del post padre

Questo articolo è un approfondimento su Aggiungere dati extra alle voci indicizzate

SearchWP ha la capacità di trasferire il peso della rilevanza in diverse direzioni. Una direzione è particolarmente applicabile ai Media, in quanto puoi far trasferire a SearchWP il peso per le voci Media ai rispettivi post 'Caricato su'. Nel database questa relazione è stabilita usando la colonna post_parent.

Quando questo trasferimento di peso è stato impostato nelle impostazioni del Motore (e prendendo come esempio i PDF) quando si cerca contenuto che appare in un PDF, il risultato che SearchWP restituisce non sarà il PDF stesso, ma il post a cui è stato allegato.

A seconda del tuo sito e delle circostanze, questo può essere molto vantaggioso!

Ci sono tuttavia alcuni casi limite e talvolta il trasferimento di peso non è qualcosa che si desidera che si verifichi in tutti i casi. Possiamo sfruttare l'adattabilità di SearchWP e personalizzare la nostra implementazione per invece:

  • Disabilitare i Media dal Motore SearchWP interamente
  • Agganciarsi all'indicizzatore di SearchWP e recuperare eventuali PDF 'figli' per i post mentre vengono indicizzati

Questa applicazione dinamica ci consente di valutare meglio la situazione su base post per post.

All hooks should be added to your custom SearchWP Customizations Plugin.

<?php
// @link https://searchwp.com/documentation/knowledge-base/append-document-content-to-parent-post-content/
// Retrieve child PDF content and add as 'extra' data to a SearchWP Entry.
add_filter( 'searchwp\entry\data', function( $data, \SearchWP\Entry $entry ) {
// Convert the SearchWP Entry into it's native object type.
$entry = $entry->native();
// We only want to consider WP_Post objects.
if ( ! $entry instanceof \WP_Post ) {
return $data;
}
// Retrieve PDFs that have been uploaded to this Entry.
$pdfs = get_posts( [
'post_type' => 'attachment',
'post_mime_type' => 'application/pdf',
'post_status' => 'inherit',
'nopaging' => true,
'post_parent' => $entry->ID,
] );
if ( empty( $pdfs ) ) {
return $data;
}
// Retrieve PDF content for PDFs and store as extra data.
$data['meta'][ 'searchwp_child_pdf_content' ] = array_map( function( $pdf ) {
return \SearchWP\Document::get_content( $pdf );
}, $pdfs );
return $data;
}, 20, 2 );
// Add "Attached PDF Content" as available option to SearchWP Source Attributes.
add_filter( 'searchwp\source\attribute\options', function( $keys, $args ) {
if ( $args['attribute'] !== 'meta' ) {
return $keys;
}
// This key is the same as the one used in the searchwp\entry\data hook above, they must be the same.
$pdf_content_key = 'searchwp_child_pdf_content';
// Add "Attached PDF Content" Option if it does not exist already.
if ( ! in_array(
$pdf_content_key,
array_map( function( $option ) { return $option->get_value(); }, $keys )
) ) {
$keys[] = new \SearchWP\Option( $pdf_content_key, 'Attached PDF Content' );
}
return $keys;
}, 20, 2 );

Questi hook si agganciano al processo di indicizzazione di SearchWP e per ogni post (es. Post, Pagine, Tipi di Post Personalizzati) cercheranno eventuali PDF che sono stati 'caricati su' questo post corrente (utilizzando la relazione post_parent stabilita) e quindi analizzeranno ciascuno di questi PDF per il contenuto.

Il contenuto di tutti i PDF 'figli' verrà archiviato come Campo Personalizzato aggiuntivo con il nome searchwp_child_pdf_content. Il secondo hook aggiungerà questo Campo Personalizzato aggiuntivo al menu a discesa Campi Personalizzati quando si gestiscono gli attributi del post nel tuo Motore SearchWP e la voce avrà il nome di Contenuto PDF Allegato che ti permetterà di assegnare un peso di rilevanza individuale al contenuto PDF estratto.

Nota: Affinché questa modifica abbia effetto, dovrai ricostruire il tuo indice utilizzando il pulsante nella scheda Motori della schermata delle impostazioni di SearchWP.

Crea Oggi Stesso una Migliore Esperienza di Ricerca WordPress

Non perdere mai più visitatori a causa di risultati di ricerca inutili. SearchWP rende la creazione della tua ricerca intelligente WordPress veloce e facile.

Get SearchWP Now
Icona di motori di ricerca multipli