Hinzufügen von zusätzlichen Daten zu indizierten Einträgen
Viele Male ist der zu indizierende Inhalt auf dem Bearbeitungsbildschirm für die Einträge, mit denen Sie arbeiten, sichtbar/bearbeitbar, aber es gibt auch Zeiten, in denen Sie zusätzlichen Daten zu Einträgen hinzufügen möchten, während SearchWP sie indiziert, um diese Daten durchsuchbar zu machen.
Wir können ein paar SearchWP-Hooks verwenden, um beliebige Daten zusammen mit Ihrem Eintragsinhalt einzuschließen, wenn der Indexer von SearchWP ausgeführt wird.
All hooks should be added to your custom SearchWP Customizations Plugin.
| <?php | |
| // @link https://searchwp.com/documentation/knowledge-base/adding-extra-data-to-indexed-entries/ | |
| // Adding extra data to indexed entries in SearchWP. | |
| add_filter( 'searchwp\entry\data', function( $data, \SearchWP\Entry $entry ) { | |
| $my_extra_meta_key = 'my_extra_meta'; | |
| // SearchWP can index any data type, array/object values will all be processed. | |
| // For this example we will use a string: | |
| $my_extra_meta = 'This content will be searchable!'; | |
| // Store custom Custom Field along existing postmeta. | |
| $data['meta'][ $my_extra_meta_key ] = $my_extra_meta; | |
| return $data; | |
| }, 20, 2 ); | |
| // Add 'extra' meta as available option for your Source Attributes. | |
| add_filter( 'searchwp\source\attribute\options', function( $keys, $args ) { | |
| if ( $args['attribute'] !== 'meta' ) { | |
| return $keys; | |
| } | |
| // This key is the same as the one used in the searchwp\entry\data hook above, they must be the same. | |
| $my_extra_meta_key = 'my_extra_meta'; | |
| // Add "Extra Meta" Option if it does not exist already. | |
| if ( ! in_array( | |
| $my_extra_meta_key, | |
| array_map( function( $option ) { return $option->get_value(); }, $keys ) | |
| ) ) { | |
| $keys[] = new \SearchWP\Option( $my_extra_meta_key, 'Extra Meta' ); | |
| } | |
| return $keys; | |
| }, 20, 2 ); |
Mit diesen Hooks, die zu Ihrem SearchWP Customizations-Plugin hinzugefügt wurden, sehen Sie das benutzerdefinierte Feld 'Extra Meta', wenn Sie nach extra suchen, da es dem benutzerdefinierten Optionsnamen entspricht, den wir im obigen Snippet erstellt haben.


