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; | |
} ); | |
} ); |