SearchWP

searchwp\sources

Since: 4.0.0

Table of Contents

Control what content can be indexed and searched by SearchWP. See also \SearchWP\Source.

Parameters

Type Parameter Default Since
Array $sources Core Sources 4.0.0

Examples

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

Add custom Source to SearchWP

This example Source is modeled upon a custom database table. See lines 46-50 for usage of this particular hook.

<?php
/**
* Adds custom SearchWP\Source for MyCustomSources.
*/
add_action( 'plugins_loaded', function() {
class MyCustomSource extends \SearchWP\Source {
// Unique name for this source.
protected $name = 'mycustomsource';
// Database column name that tracks entries for this 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.
$this->attributes = [ [
'name' => 'content',
'label' => 'Entry Content',
'default' => \SearchWP\Utils::get_min_engine_weight(),
'data' => function( $entry_id ) {
return MyCustomSource::get_content( $entry_id );
},
], ];
}
// Returns a native object.
public function entry( \SearchWP\Entry $entry, $query = false ) {
return MyCustomSource::get_entry( $entry->get_id() );
}
}
// Append this Source to the list of available Sources in SearchWP.
add_filter( 'searchwp\sources', function( $sources ) {
$sources[] = new MyCustomSource();
return $sources;
} );
} );

How to use this code