SearchWP Documentation

Consulta la guía de instalación, explora la base de conocimiento, descubre los numerosos hooks de SearchWP

\SearchWP\Source

\SearchWP\Source es una clase abstracta diseñada para modelar tipos de contenido para los procesos de indexación y búsqueda de SearchWP. Los \SearchWP\Source se añaden a los Motores que, a su vez, se utilizan al instanciar un \SearchWP\Query.

En SearchWP hay una serie de \SearchWP\Source principales disponibles por defecto, incluyendo:

Debido a que estos \SearchWP\Source están disponibles por defecto, se pueden usar inmediatamente al configurar sus Motores.

Uso básico

Puede crear sus propios \SearchWP\Source para que coincidan con cualquier tipo de contenido personalizado que tenga (incluidos aquellos con tablas de bases de datos personalizadas) utilizando esta clase y el 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: Cualquier \SearchWP\Source registrado también puede ser eliminado utilizando el hook searchwp\sources.

Argumentos

No hay argumentos al instanciar un nuevo \SearchWP\Source.

Propiedades

Al extender \SearchWP\Source hay una serie de propiedades a considerar.

name (string)
Un nombre único. (por defecto: '')
labels (array)
Etiquetas, array con claves singular y plural. (por defecto: [])
db_table (string)
La tabla de base de datos utilizada para almacenar las entradas a indexar. (por defecto: '')
db_id_column (string)
La columna de base de datos utilizada para rastrear los IDs de las entradas. (por defecto: '')
attributes (array)
Atributos individuales para recibir un peso de relevancia al configurar esta Fuente en un Motor. (por defecto: [])
Array de Atributos o arrays de configuración de Atributos, cada uno con las siguientes claves:
'name' (string) Nombre del Atributo.
'label' (string) Etiqueta del Atributo.
'default' (integer) Peso por defecto (cero para omitir como por defecto).
'options' (array) Opcional. Define instancias individuales de este Atributo.
'data' (mixed) Define los datos para este Atributo al instanciar una Entrada.
– El primer parámetro es el ID de la entrada según $db_id_column
– El segundo parámetro (cuando sea aplicable) es la option elegida de options
rules (array)
Reglas individuales Rule para controlar la elegibilidad de las Entradas como resultados de búsqueda. (por defecto: [])
Matriz de Rules o matrices de configuración de Reglas, cada una con las siguientes claves:
'name' (string) Nombre de la regla.
'label' (string) Etiqueta de la regla.
'options' (array) Opcional. Define opciones individuales para esta Regla.
'conditions' (array) Opcional. Define condiciones individuales de esta Regla.
'values' (array) Opcional. Define valores para cada opción de esta Regla.
'application' (mixed) Aplica la lógica de la regla.
– El primer parámetro contiene las propiedades de la regla como una matriz
option La opción elegida
condition La condición elegida
value El valor elegido

Métodos

Al extender \SearchWP\Source hay una serie de métodos a considerar.

db_where (retorna array)
Matriz de matrices de cláusulas WHERE que deben cumplirse tanto para la indexación como para la búsqueda. (por defecto: [])
'column' (string) Columna de la base de datos
'value' (mixed) Valor
'type' (string) Tipo de valor(es), puede ser 'CHAR' o 'NUMERIC'
'compare' (string) Método por el cual comparar value
Los tipos de comparación disponibles incluyen: '=', '!=', '>', '>=', '<', '<=', 'LIKE', 'NOT LIKE', 'IN', 'NOT IN', 'BETWEEN', 'NOT BETWEEN', 'EXISTS', 'NOT EXISTS'
entry (retorna mixed)
Cuando se encuentra un resultado de búsqueda, este método se activa para recuperar una representación nativa de ese resultado. (por defecto: stdClass)
– El primer parámetro es la \SearchWP\Entry que se encontró
– El segundo parámetro es la \SearchWP\Query que encontró este resultado (si es aplicable)
add_hooks
Se activa al inicializar esta Fuente. Se utiliza principalmente para implementar hooks que faciliten las actualizaciones del \SearchWP\Index\Controller a medida que se edita el contenido.

Hooks

Hay una serie de ganchos disponibles para modificar aún más el comportamiento de \SearchWP\Source:

Cree hoy mismo una mejor experiencia de búsqueda en WordPress

No vuelva a perder visitantes por resultados de búsqueda inútiles. SearchWP facilita la creación de su propia búsqueda inteligente en WordPress.

Get SearchWP Now
Icono de múltiples motores de búsqueda