Exclude add_filter vom admin aus

Ich habe eine benutzerdefinierte Filterfunktion für eine Front-End-Suche erstellt, die auch eine bestimmte Benutzergruppe enthält.

Um die function der Suche hinzuzufügen, die ich verwendet habe

add_filter('pre_get_posts','my_filter_the_search',10,1); function my_filter_the_search($query){ $post_type = filter_input(INPUT_GET, 'post_type', FILTER_SANITIZE_STRING); if($post_type == 'document'): add_filter( 'posts_search', '__search_by_title_only', 500, 2 ); //Get array of slugs of checked terms $terms = (array) $_GET['post_type']; //Tax_query array $tax_query = array(array( 'taxonomy' => 'access', 'terms' => 'basic-user', 'field' => 'slug', )); //Tell the query to filter by tax $query->set('tax_query', $tax_query); return $query; endif; } 

Dies scheint die Auflistung eines benutzerdefinierten Post-Typs im Back-End zu bewirken.

Wie verwende ich das nur für das Frontend der Seite?

Solutions Collecting From Web of "Exclude add_filter vom admin aus"

Haken Sie die function nur an, wenn sie nicht das Backend ist.

 if( !is_admin() ){ add_filter('pre_get_posts','my_filter_the_search',10,1); } 

Mach einfach einen var_dump( $query ); in Ihrem Callback, um die Eigenschaften der Objekte zu sehen. Eine der Eigenschaften, die Sie verwenden können, ist is_admin .

 // functions.php function my_search_filter($query) { if ( $query->is_admin ) { // do/set something on query return $query; } return $query; } add_filter('pre_get_posts','my_search_filter'); 

Die Verwendung der globalen function is_admin () ist auch in Ordnung.