Wordpress Loop Query verändern / manipulieren bevor es ausgeführt wird

Mit diesem Code-Scnippet / Hook ist es möglich, das WP-Query zu veränderrn. Dieser Hook setzt direkt vor dem Ausführen des Loops ein.

Wichtig: Das beeinflusst jeden Loop. Das heißt auch die Loops im Backend.

/*
	Mit dem Filter kann man die Queries manipulieren
	ohne Custom-Queries auf jeder Seite schreiben zu
	müssen.
 
	Dokumentation:
	@link : https://developer.wordpress.org/reference/hooks/pre_get_posts/
	@link : https://codex.wordpress.org/Plugin_API/Action_Reference/pre_get_posts
	@link : https://codex.wordpress.org/Class_Reference/WP_Meta_Query
 
	WICHTIGER HINWEIS:
	Dieses Query manipuliert alle Loops, d.h. auch die
	im Backend! Mit is_admin() immer kontrollieren ob
	man auch im Frontend ist!
 */
 
 
function filter_by_visibility_meta( $query ) {
 
	$country_meta    = get_country_meta_query_array();
	$user_group_meta = get_user_group_meta_query_array();
 
	$meta_query = [
		'relation' => 'AND',
		$country_meta,
		$user_group_meta,
	];
 
	if( !is_admin() ){
		// Nur zum Test ob die Filterfunktion aufgerufen wird
		// $query->set( 'posts_per_page', 1 );
 
		$query->set( 'meta_query', $meta_query );
 
	}
 
	return;
}
add_action( 'pre_get_posts', 'filter_by_visibility_meta' );