SearchWP Documentation

Sehen Sie sich die Installationsanleitung an, durchsuchen Sie die Wissensdatenbank und erfahren Sie mehr über die vielen Hooks von SearchWP

WooCommerce herunterladbare (PDF) Produktdokumentinhalte durchsuchen

Wenn Sie Dokumenten-Downloads in Ihrem WooCommerce-Shop verkaufen, ist es möglich, dass SearchWP den Inhalt dieser Dokumente indiziert, um ihn für Ihre Kunden durchsuchbar zu machen!

Hinweis: Dies (wie die gesamte Dokumentenverarbeitung in SearchWP) erfordert, dass die WooCommerce herunterladbaren Produktdownloads in die lokale WordPress-Mediathek hochgeladen wurden.

WooCommerce-Dokumentinhalte indizieren

Wir können die Fähigkeit von SearchWP nutzen, Inhalte aus lesbaren Dokumenten, die in der WordPress-Mediathek gespeichert sind, zu analysieren und durchsuchbar zu machen. Dies kann mit der leistungsstarken Fähigkeit von SearchWP kombiniert werden, 'zusätzliche' Metadaten in seinem eigenen Index zu indizieren, ohne die in der Post- oder Postmeta-Tabelle von WordPress gespeicherten Daten zu beeinträchtigen.

Der Vorteil dieses Ansatzes besteht darin, den Inhalt des/der WooCommerce-Downloads zu indizieren, ohne die gesamte Datei preiszugeben.

Ein allgemeineres Beispiel für die Indizierung von 'zusätzlichen' Daten finden Sie in diesem KB-Artikel: Hinzufügen von zusätzlichen Daten zu indizierten Einträgen

Wenn Sie Ihre WooCommerce-Download-Inhalte durchsuchbar machen möchten, können Sie diesen Hook verwenden:

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

<?php
// Tell SearchWP to parse WooCommerce Downloadable Product downloads for document content.
// The content will be extracted from downloadable documents where possible and stored
// in SearchWP's index as a Custom Field with a label of "SearchWP WooCommerce Download Content"
add_filter( 'searchwp\entry\data', function( $data, \SearchWP\Entry $entry ) {
if ( 'post.product' !== $entry->get_source()->get_name() || ! class_exists( 'WC_Product' ) ) {
return $data;
}
$product = new \WC_Product( $entry->get_id() );
$downloads = $product->get_downloads();
if ( empty( $downloads ) ) {
return $data;
}
// WooCommerce only stores a hashed ID, the filename, and the URL to the file
// but we need to retrieve the Media library ID for each downloadble file.
$download_content = [];
$upload_dir = wp_upload_dir();
foreach ( $downloads as $key => $download ) {
$relative_file_location = str_replace( trailingslashit( $upload_dir['baseurl'] ), '', $download['data']['file'] );
// We can use the relative file location to retrieve the post ID we need to parse the PDFs.
$file_id = get_posts( [
'post_type' => 'attachment',
'post_status' => 'inherit',
'fields' => 'ids',
'meta_query' => [ [
'key' => '_wp_attached_file',
'value' => $relative_file_location,
], ],
] );
if ( ! empty( $file_id ) ) {
$download_content[] = \SearchWP\Document::get_content( get_post( $file_id[0] ) );
}
}
$data['meta']['swp_wc_doc_content'] = \SearchWP\Utils::tokenize( $download_content );
return $data;
}, 20, 2 );
// Add "SearchWP WooCommerce Download Content" as available option.
add_filter( 'searchwp\source\attribute\options', function( $keys, $args ) {
if ( $args['attribute'] !== 'meta' ) {
return $keys;
}
$content_key = 'swp_wc_doc_content';
if ( ! in_array(
$content_key,
array_map( function( $option ) { return $option->get_value(); }, $keys )
) ) {
$keys[] = new \SearchWP\Option( $content_key, 'SearchWP WooCommerce Download Content' );
}
return $keys;
}, 20, 2 );

Dieser Hook greift in den Indizierungsprozess von SearchWP ein und wenn er ein Produkt mit Downloads findet, prüft er diese Downloads auf Dokumenteninhalte und indiziert diese Inhalte, sobald sie gefunden wurden, zusammen mit dem Produkt selbst.

Dies ermöglicht es Ihnen, nach dem Download-Inhalt zu suchen und das Produkt zurückzugeben, nicht den Download, was es Ihrem Kunden wiederum ermöglicht, den Kauf zu tätigen.

Der letzte Schritt besteht darin, sicherzustellen, dass Sie dieses 'zusätzliche' benutzerdefinierte Feld zu den Produkten in Ihrer SearchWP-Engine hinzugefügt haben, was wie folgt geschehen kann:

SearchWP WooCommerce Download-Dokumentinhalte

Hinweis: Wenn Sie diesen Ansatz verwenden, können (und sollten Sie wahrscheinlich) Medien aus Ihrer Engine deaktivieren, da der Download-Inhalt dem Produkt hinzugefügt wird.

Nachdem der Dokumenteninhalt zu den Produkten in Ihrer Engine hinzugefügt wurde, können Sie auf die Schaltfläche "Engines speichern" klicken, Ihren Index neu erstellen und alles ist bereit!

Erstellen Sie noch heute eine bessere WordPress-Sucherfahrung

Verlieren Sie nie wieder Besucher an unzureichende Suchergebnisse. SearchWP macht die Erstellung Ihrer eigenen intelligenten WordPress-Suche schnell und einfach.

Get SearchWP Now
Symbol für mehrere Suchmaschinen