Wie können Ereignisse (benutzerdefinierte Beiträge) von der Suche ausgeschlossen werden, wenn das Startdatum bereits überschritten wurde?

Ich habe eine Abfrage, mit der Suchergebnisse aus der Suche angezeigt werden. Die Abfrage befindet sich in search.php. Es zeigt benutzerdefinierte Posts und Seiten im Suchergebnis, was ich möchte. Ich habe einen benutzerdefinierten Beitragstyp namens “event”, jeder Beitrag hat ein Datum in _event_start_date gespeichert. Ich möchte _event_start_date (einen _event_start_date ) mit dem aktuellen Datum vergleichen und Event-Posts, die in der Vergangenheit liegen, vom Suchergebnis ausschließen.

Meine Arbeitsanfrage:

 if ( have_posts() ) : ?> 

<?php printf( __( 'Search Results for: %s', 'shape' ), '' . get_search_query() . '' ); ?>

<a href="https://wordpress.stackexchange.com/questions/190402/how-to-exclude-events-custom-posts-from-search-if-the-start-date-has-already/">

there were no results

Wie kann ich _event_start_date in den obigen Code einfügen, so dass, wenn ein Ereignis bereits gestartet wurde, es nicht im Suchergebnis angezeigt wird? Das Datum wird als 2015-05-01 in _event_start_date formatiert

Solutions Collecting From Web of "Wie können Ereignisse (benutzerdefinierte Beiträge) von der Suche ausgeschlossen werden, wenn das Startdatum bereits überschritten wurde?"

Das funktioniert, wenn ich es in functions.php stelle.

 function wpq_modify_search( $q ) { if ( ! is_admin() && $q->is_main_query() && $q->is_search() ) { $meta_query = [ 'relation' => 'or', [ 'key' => '_event_start_date', 'value' => current_time( 'mysql' ), 'type' => 'DATETIME', 'compare' => '>=', ], [ 'key' => '_event_start_date', 'compare' => 'NOT EXISTS', ], ]; $q->set('meta_query', $meta_query ); } } add_action( 'pre_get_posts', 'wpq_modify_search' ); 

Ich verstehe diesen Code allerdings nicht, bitte kann jemand das bitte erklären?