searchwp\sources
Da: 4.0.0
Indice
Controlla quali contenuti possono essere indicizzati e cercati da SearchWP. Vedi anche \SearchWP\Source.
Parametri
| Tipo | Parametro | Predefinito | Da |
|---|---|---|---|
| Array | $sources |
Origini principali | 4.0.0 |
Esempi
All hooks should be added to your custom SearchWP Customizations Plugin.
Aggiungi Origine personalizzata a SearchWP
Questa Origine di esempio è modellata su una tabella di database personalizzata. Vedi le righe 46-50 per l'utilizzo di questo particolare hook.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <?php | |
| /** | |
| * 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; | |
| } ); | |
| } ); |

