SearchWP Documentation

Veja o guia de instalação, navegue pela Base de Conhecimento, descubra os muitos hooks do SearchWP

Anexar Conteúdo do Documento ao Conteúdo do Post Pai

Este artigo é uma expansão de Adicionando dados extras a entradas indexadas

SearchWP tem a capacidade de transferir peso de relevância em várias direções. Uma direção é particularmente aplicável à Mídia, pois você pode fazer com que o SearchWP transfira peso para entradas de Mídia para seus respectivos posts 'Enviado para'. No banco de dados, esse relacionamento é estabelecido usando a coluna post_parent.

Quando essa transferência de peso foi configurada nas configurações do Motor (e tomando PDFs como exemplo) ao pesquisar conteúdo que aparece em um PDF, o resultado que o SearchWP retorna não será o próprio PDF, mas sim o post ao qual ele foi anexado.

Dependendo do seu site e circunstâncias, isso pode ser muito benéfico!

Existem alguns casos extremos, no entanto, e às vezes a transferência de peso não é algo que você deseja que ocorra em todos os casos. Podemos aproveitar a adaptabilidade do SearchWP e personalizar nossa implementação para, em vez disso:

  • Desabilitar Mídia do Motor SearchWP inteiramente
  • Enganchar no indexador do SearchWP e recuperar quaisquer PDFs 'filhos' para posts à medida que são indexados

Essa aplicação dinâmica nos permite avaliar melhor a situação em uma base de post por 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 );

Esses hooks acessam o processo de indexação do SearchWP e, para cada post (por exemplo, Posts, Páginas, Tipos de Post Personalizados), procurarão por quaisquer PDFs que foram 'enviados para' este post atual (utilizando o relacionamento post_parent estabelecido) e, em seguida, analisarão cada um desses PDFs em busca de conteúdo.

O conteúdo de todos os PDFs 'filhos' será armazenado como um Campo Personalizado extra com o nome searchwp_child_pdf_content. O segundo hook adicionará este Campo Personalizado extra ao dropdown de Campos Personalizados ao gerenciar os Atributos do post em seu Motor SearchWP e a entrada terá o nome de Conteúdo de PDF Anexado, o que permitirá que você dê um peso de relevância individual ao conteúdo de PDF extraído.

Nota: Para que esta alteração tenha efeito, você precisará reconstruir seu índice usando o botão na aba Motores da tela de configurações do SearchWP.

Crie uma Experiência de Pesquisa WordPress Melhor Hoje

Nunca mais perca visitantes para resultados de pesquisa inúteis. O SearchWP torna a criação de sua própria pesquisa inteligente do WordPress rápida e fácil.

Get SearchWP Now
Ícone de Múltiplos Mecanismos de Busca