SearchWP Documentation

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

\SearchWP\Mod

Objetos \SearchWP\Mod são usados para modificar uma \SearchWP\Query.

Cada \SearchWP\Mod implementa uma única modificação, e qualquer número de \SearchWP\Mods pode ser usado ao mesmo tempo.

Alguns casos de uso comuns para \SearchWP\Mods incluem:

  • Alterar o cálculo de peso de relevância dos resultados com base em parâmetros personalizados.
  • Controlar quais resultados são retornados (ou não) com base em critérios personalizados.
  • JOIN com tabelas de banco de dados personalizadas para implementar critérios personalizados.

Mais especificamente relacionado a Posts, Páginas e Tipos de Post Personalizados, \SearchWP\Mods podem ser usados para:

  • Limitar resultados aos que estão em uma determinada Categoria.
  • Excluir resultados com uma determinada Tag.
  • Dar peso extra a datas de publicação mais recentes.
  • Implementar um aumento de peso com base no valor meta para posts com um determinado Campo Personalizado.
  • Adicionar peso bônus a posts que têm um determinado termo de taxonomia.

\SearchWP\Mods permitem a interação com uma \SearchWP\Query sem ter que escrever SQL personalizado, embora isso possa ser feito onde aplicável ao montar um \SearchWP\Mod ou usando um hook de \SearchWP\Query.

Veja também: Comparando Mods de Índice e Fonte

Uso Básico

O uso de \SearchWP\Mod varia de acordo com o caso de uso, mas a implementação ocorre de uma das duas maneiras:

  1. Um array de \SearchWP\Mod pode ser passado para \SearchWP\Query usando o argumento 'mods'.
  2. Usando o hook searchwp\query\mods.

Como exemplo, este \SearchWP\Mod exclui os Posts 145 e 211 dos resultados da pesquisa:

<?php
// @link https://searchwp.com/documentation/classes/searchwp-mod/
$source = \SearchWP\Utils::get_post_type_source_name( 'post' );
$mod = new \SearchWP\Mod( $source );
$mod->set_where( [ [
'column' => 'id',
'value' => [ 145, 211 ],
'compare' => 'NOT IN',
'type' => 'NUMERIC',
] ] );

Com o \SearchWP\Mod escrito, o próximo passo é implementá-lo seguindo 1 dos 2 passos acima.

Se você estiver construindo sua própria \SearchWP\Query, pode passar este \SearchWP\Mod com o argumento 'mods':

<?php
// @link https://searchwp.com/documentation/classes/searchwp-mod/
// Retrieve Source name to use with Mod.
$source = \SearchWP\Utils::get_post_type_source_name( 'post' );
// Build Mod to exclude Post ID 145 and Post ID 211.
$mod = new \SearchWP\Mod( $source );
$mod->set_where( [ [
'column' => 'id',
'value' => [ 145, 211 ],
'compare' => 'NOT IN',
'type' => 'NUMERIC',
] ] );
// Execute search for 'coffee' using Mod.
$search = new \SearchWP\Query( 'coffee', [
'mods' => [ $mod ],
] );
$results = $search->results; // Array of results.

Alternativamente, você pode usar o hook searchwp\query\mods para enfileirar o \SearchWP\Mod.

Observação: ao usar este método, este \SearchWP\Mod será aplicado a todas as pesquisas, a menos que código adicional seja escrito para evitar isso.

<?php
// @link https://searchwp.com/documentation/classes/searchwp-mod/
add_filter( 'searchwp\query\mods', function( $mods, $query ) {
// Retrieve Source name to use with Mod.
$source = \SearchWP\Utils::get_post_type_source_name( 'post' );
// Build Mod to exclude Post ID 145 and Post ID 211.
$mod = new \SearchWP\Mod( $source );
$mod->set_where( [ [
'column' => 'id',
'value' => [ 145, 211 ],
'compare' => 'NOT IN',
'type' => 'NUMERIC',
] ] );
$mods[] = $mod;
return $mods;
}, 20, 2 );
// Execute search for 'coffee' using Mod enqueued above.
$search = new \SearchWP\Query( 'coffee' );
$results = $search->results; // Array of results.

Usar o hook searchwp\query\mods para enfileirar um \SearchWP\Mod permite a aplicação durante pesquisas nativas.

Argumentos

\SearchWP\Mod tem um único argumento opcional: $source.

Quando um $source é definido, alguns comportamentos (por exemplo, cláusulas WHERE) serão automaticamente restritos à lógica para essa $source específica.

Quando um $source não é fornecido, esse comportamento se aplicará ao índice.

Para mais informa ilde{A§ ilde{A}o, consulte Comparando M ilde{A³dulos de Origem e de Indexa ilde{A§ ilde{A}o.

$source pode ser o name de um \SearchWP\Source ou o pr ilde{A³prio \SearchWP\Source.

Observa ilde{A§ ilde{A}o: Ao trabalhar com Sources de WP_Post, voc ilde{Aª pode usar este m ilde{A©todo utilit ilde{A¡rio para recuperar o name do Source passando o nome do tipo de postagem:

<?php
// @link https://searchwp.com/documentation/classes/searchwp-mod/
// Retrieve the Source name for a Post Type:
$source = \SearchWP\Utils::get_post_type_source_name( 'post' ); // Posts.
$source = \SearchWP\Utils::get_post_type_source_name( 'page' ); // Pages.
$source = \SearchWP\Utils::get_post_type_source_name( 'movie' ); // Custom Post Type.
view raw functions.php hosted with ❤ by GitHub

Se nenhum $source for fornecido, padr ilde{Aµes sensatos ser ilde{A£o tratados internamente durante a instancia ilde{A§ ilde{A}o.

source (string)
O name do \SearchWP\Source (padr ilde{A£o: null)

Métodos

relevance( $sql )
Adiciona cl ilde{A¡usula de c ilde{A¡lculo de relev ilde{A¢ncia. Exemplo
weight( $sql )
Adiciona cl ilde{A¡usula de c ilde{A¡lculo de peso. Observa ilde{A§ ilde{A}o: ao contr ilde{A¡rio de relevance(), o c ilde{A¡lculo de peso ilde{A© multiplicado pelo n ilde{Aºmero de correspond ilde{Aªncias da pesquisa.
column_as( $sql, $column_name )
Adiciona cl ilde{A¡usula de modifica ilde{A§ ilde{A}o de coluna.
get_columns()
Getter para colunas registradas.
get_weights()
Getter para modifica ilde{A§ ilde{A}es de peso registradas.
get_join_sql()
Getter para SQL JOIN gerado.
raw_join_sql( $sql )
Adiciona cl ilde{A¡usula SQL JOIN bruta.
get_raw_join_sql()
Getter para cl ilde{A¡usulas SQL JOIN brutas.
raw_where_sql( $sql )
Adiciona cl ilde{A¡usula SQL WHERE bruta.
get_raw_where_sql()
Getter para cl ilde{A¡usulas SQL WHERE brutas.
get_source()
Getter para \SearchWP\Source aplic ilde{A¡vel.
set_where( $where )
Setter para cl ilde{A¡usulas WHERE.
get_where()
Getter para cláusulas WHERE.
set_local_table( string $table )
Setter para o nome da tabela local.
get_local_table()
Getter para o nome da tabela local.
set_local_table_alias( string $table )
Setter para o alias da tabela local.
get_local_table_alias()
Getter para o alias da tabela local.
set_foreign_alias( string $alias )
Setter para o alias da tabela estrangeira.
get_foreign_alias()
Getter para o alias da tabela estrangeira.
on( string $local, array $foreign )
Adiciona cláusula ON.
get_on()
Getter para cláusulas ON.
order_by( $column, $direction, $priority )
Adiciona cláusula ORDER BY. Exemplo
get_order_by()
Getter para cláusulas ORDER BY.
set_values( array $values )
Setter para valores de placeholders SQL a serem escapados em tempo de execução.
get_values()
Getter para valores de placeholders SQL.

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