Excluir add_filter del administrador

2

He creado un servicio de filtrado personalizado para una búsqueda frontal, que también incluye un grupo de usuarios específico.

Para agregar la función a la búsqueda que he usado

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;
}

Esto parece estar afectando la lista de un tipo de publicación personalizada en el backend.

¿Cómo uso esto solo para la parte delantera del sitio?

    
pregunta Brob 28.05.2013 - 10:31

2 respuestas

2

Solo enganche la función si no es el servidor.

if( !is_admin() ){
    add_filter('pre_get_posts','my_filter_the_search',10,1);
}
    
respondido por el Bainternet 28.05.2013 - 10:42
2

Simplemente haga un var_dump( $query ); dentro de su devolución de llamada para ver las propiedades de los objetos. Una de las propiedades que puedes usar es 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');

El uso de la función global is_admin () también está bien.

    
respondido por el kaiser 28.05.2013 - 10:39

Lea otras preguntas en las etiquetas