Excluir taxonomía personalizada de resultados de búsqueda y páginas de archivo

4

ACTUALIZACIÓN: Tengo el siguiente código de trabajo. Excluye la taxonomía de los resultados de búsqueda. Sin embargo, me gustaría que esto solo sucediera si un usuario no ha iniciado sesión. El código a continuación está surtiendo efecto para los usuarios que han iniciado sesión y finalizado la sesión. ¿Cómo puedo verificar si alguien ha iniciado sesión desde el archivo functions.php? He intentado! Is_user_logged_in () muchas veces, y parece que no logro que funcione. Gracias por cualquier ayuda!

add_filter( 'pre_get_posts', 'exclude_pages_search_when_logged_out' );
function exclude_pages_search_when_logged_out($query) {
    if ( $query->is_search && !is_user_logged_in() ) {

      $tax_query = array([
            'taxonomy' => 'wpfc_service_type',
            'field' => 'term_id',
            'terms' => [ 505 ],
            'operator' => 'NOT IN',
        ]);

        $query->set( 'tax_query', $tax_query );

        }

    return $query;
} 

PREGUNTA ORIGINAL

I'm trying to exclude the taxonomy 'wpfc_service_type', term 505, from my search results and archive pages. I've added the following to my functions.php file, but it doesn't seem to be working. What am I doing wrong?

    add_action( 'pre_get_posts', function ( $query ) {
        if ( is_admin() || ! $query->is_main_query() ) {
            return;
        }

        // Exclude Terms by ID from Search and Archive Listings
        if ( is_search() || is_tax( 'wpfc_service_type' ) ) {    
            $tax_query = array([
                'taxonomy' => 'wpfc_service_type',
                'field' => 'term_id',
                'terms' => [ 505 ],
                'operator' => 'NOT IN',
            ]);

            $query->set( 'tax_query', $tax_query );
        }
    }, 11, 1 ); 
    
pregunta McFarnell 27.03.2018 - 06:04

1 respuesta

0

Copie el siguiente fragmento de código y péguelo en el código de su tema, preferiblemente en el archivo functions.php:

    /* Exclude a Category from Search Results */

    add_filter( 'pre_get_posts' , 'search_exc_cats' );
    function search_exc_cats( $query ) {

    if( $query->is_admin )
    return $query;

    if( $query->is_search ) {
    $query->set( 'category__not_in' , array( 30 ) ); // Cat ID
    }
    return $query;
    }
    
respondido por el AddWeb Solution Pvt Ltd 27.03.2018 - 14:37

Lea otras preguntas en las etiquetas