SearchWP Documentation

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

\SearchWP\Source

\SearchWP\Source è una classe astratta progettata per modellare i tipi di contenuto per i processi di indicizzazione e ricerca di SearchWP. I \SearchWP\Source vengono aggiunti agli Engine che a loro volta vengono utilizzati quando si istanzia un \SearchWP\Query.

In SearchWP sono disponibili per impostazione predefinita diversi \SearchWP\Source principali, tra cui:

Poiché questi \SearchWP\Source sono disponibili per impostazione predefinita, possono essere utilizzati immediatamente durante la configurazione dei tuoi Engine.

Utilizzo di base

Puoi creare i tuoi \SearchWP\Source per adattarli a qualsiasi tipo di contenuto personalizzato che hai (inclusi quelli con tabelle di database personalizzate) utilizzando questa classe e l'hook searchwp\sources.

<?php
// @link https://searchwp.com/documentation/classes/searchwp-source/
/**
* Adds custom SearchWP\Source for MyCustomSearchWPSource which uses a custom database table.
*/
add_action( 'plugins_loaded', function() {
class MyCustomSearchWPSource extends \SearchWP\Source {
// Unique name for this Source.
protected $name = 'mycustomsource';
// Database column name that provides a unique ID for each entry of the Source.
protected $db_id_column = 'id';
function __construct() {
global $wpdb;
// The database table storing entries.
$this->db_table = $wpdb->get_blog_prefix() . 'my_db_table';
// Labels for this Source.
$this->labels = [
'plural' => 'My Custom Source Entries',
'singular' => 'My Custom Source Entry',
];
// Attributes for this Source. Array of attributes, can be expanded.
$this->attributes = [ [
'name' => 'content',
'label' => 'Entry Content',
'default' => \SearchWP\Utils::get_min_engine_weight(),
'data' => function( $entry_id ) {
// Note: MyWidget is an pseudo-class meant to represent
// a class you're using that represents something like
// WP_Post in that it models the data you are working with.
// Long story short: this method should return the content
// you want to index and make searchable in SearchWP.
return MyWidget::get_content( $entry_id );
},
], ];
}
// Returns a native object e.g. formatted in a way you expect.
public function entry( \SearchWP\Entry $entry, $query = false ) {
// Note: MyWidget is a pseudo-class meant to represent a class
// you're using that represents something like WP_Post in that it
// models the data you're working with.
// Long story short: this method should return whatever it is you
// expect when working 'natively' with your data e.g. for WordPress
// pages a WP_Post is returned. Note that $entry->get_id() returns
// the value in the $db_id_column for this Source.
return new MyWidget( $entry->get_id() );
}
}
// Append this Source to the list of available Sources in SearchWP.
add_filter( 'searchwp\sources', function( $sources ) {
$sources[] = new MyCustomSearchWPSource();
return $sources;
} );
} );

Nota: Qualsiasi \SearchWP\Source registrato può anche essere rimosso utilizzando l'hook searchwp\sources.

Argomenti

Non ci sono argomenti quando si istanzia un nuovo \SearchWP\Source.

Proprietà

Quando si estende \SearchWP\Source ci sono diverse proprietà da considerare.

name (string)
Un nome univoco. (predefinito: '')
labels (array)
Etichette, array con chiavi singular e plural. (predefinito: [])
db_table (string)
La tabella del database utilizzata per archiviare le voci da indicizzare. (predefinito: '')
db_id_column (string)
La colonna del database utilizzata per tracciare gli ID delle voci. (predefinito: '')
attributes (array)
Singoli Attribute per ricevere un peso di rilevanza durante la configurazione di questo Source in un Engine. (predefinito: [])
Array di Attribute o array di impostazioni di Attributo, ciascuno con le seguenti chiavi:
'name' (string) Nome dell'Attributo.
'label' (string) Etichetta dell'Attributo.
'default' (integer) Peso predefinito (zero per omettere come predefinito).
'options' (array) Opzionale. Definisce istanze individuali di questo Attributo.
'data' (mixed) Definisce i dati per questo Attributo durante l'istanziazione di una Entry.
– 1° parametro è l'ID della voce come da $db_id_column
– 2° parametro (quando applicabile) è l'option scelta da options
rules (array)
Singole Regole per controllare l'idoneità delle Voci come risultati di ricerca. (default: [])
Array di Regole o array di impostazioni di Regola, ciascuno con le seguenti chiavi:
'name' (string) Nome della Regola.
'label' (string) Etichetta della Regola.
'options' (array) Opzionale. Definisce le singole opzioni per questa Regola.
'conditions' (array) Opzionale. Definisce le singole condizioni di questa Regola.
'values' (array) Opzionale. Definisce i valori per ciascuna opzione di questa Regola.
'application' (mixed) Applica la logica della regola.
– Il 1° parametro contiene le proprietà della regola come array
option L'opzione scelta
condition La condizione scelta
value Il valore scelto

Metodi

Quando si estende \SearchWP\Source ci sono una serie di metodi da considerare.

db_where (restituisce array)
Array di array di clausole WHERE che devono essere soddisfatte sia per l'indicizzazione che per la ricerca. (default: [])
'column' (string) Colonna del database
'value' (mixed) Valore
'type' (string) Tipo di valore/i, può essere 'CHAR' o 'NUMERIC'
'compare' (string) Metodo con cui confrontare value
I tipi di confronto disponibili includono: '=', '!=', '>', '>=', '<', '<=', 'LIKE', 'NOT LIKE', 'IN', 'NOT IN', 'BETWEEN', 'NOT BETWEEN', 'EXISTS', 'NOT EXISTS'
entry (restituisce mixed)
Quando viene trovato un risultato di ricerca, questo metodo viene attivato per recuperare una rappresentazione nativa di quel risultato. (default: stdClass)
– Il 1° parametro è la \SearchWP\Entry che è stata trovata
– Il 2° parametro è la \SearchWP\Query che ha trovato questo risultato (se applicabile)
add_hooks
Attivato all'inizializzazione di questa Sorgente. Utilizzato principalmente per implementare hook per facilitare gli aggiornamenti di \SearchWP\Index\Controller man mano che il contenuto viene modificato.

Hook

Ci sono una serie di hook disponibili per modificare ulteriormente il comportamento di \SearchWP\Source:

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