post__not_in no excluye los ID de la consulta de búsqueda de Wordpress

Daniel Vickers

Estoy tratando de recuperar las ID de las publicaciones con un cierto valor meta (esto funciona bien) Luego trato de pasarlas a través de post__not_in y no excluye las publicaciones de la búsqueda de wordpress.

Tengo la matriz de enteros (de un var_dump):

array(2) { [0]=> int(373) [1]=> int(247) }

Sin embargo, ahora necesito convertir esa matriz en 373,247 para usarla en post__not_in. ¿Algunas ideas?

remove_action('pre_get_posts','exclude_pages_from_search');

$hidePages = new WP_Query( array (
    'post_type' => array( 'post', 'page', 'offer', 'review', 'project' ),
    'ignore_sticky_posts' => true,
    'posts_per_page' => -1,
    'meta_key' => 'edit_screen_sitemap',
    'meta_value' => 'hide',
    'fields' => 'ids'
));

$test = $hidePages->posts;

function exclude_pages_from_search($query) {
    if ( !is_admin() ) {

        if ( $query->is_main_query() ) {

            if ($query->is_search) {
                $query->set('post__not_in', $test);
            }
        }
    }
} add_action('pre_get_posts','exclude_pages_from_search');
Daniel Vickers

El problema que tenía originalmente era que estaba implosionando la matriz y convirtiéndola en una cadena cuando necesitaba una matriz de enteros. Así que eliminé la implosión de la consulta y la dejé como una variable que, por supuesto, se convirtió en una matriz de enteros, ya que post___not_in solo permite matrices de enteros.

Luego me encontré con el problema de una fuga de memoria si ejecutaba la consulta dentro de la función, así que tuve que averiguar cómo ejecutarla fuera de la función y aún poder usar la variable dentro de la función, ya que no estaría definida.

Con la adición de $ hidePageIds globales, pude acceder a la variable que contiene la matriz de enteros dentro de la función y, por lo tanto, pasarla en la consulta post__not_in.

remove_action('pre_get_posts','exclude_pages_from_search');

$hidePages = new WP_Query( array (
    'post_type' => array( 'post', 'page', 'offer', 'review', 'project' ),
    'ignore_sticky_posts' => true,
    'posts_per_page' => -1,
    'meta_key' => 'edit_screen_sitemap',
    'meta_value' => 'hide',
    'fields' => 'ids'
));

$hidePageIds = $hidePages->posts;

function exclude_pages_from_search($query) {
    if ( !is_admin() ) {

        if ( $query->is_main_query() ) {

            if ($query->is_search) {

                global $hidePageIds;
                $query->set('post__not_in', $hidePageIds);
            }
        }
    }
} add_action('pre_get_posts','exclude_pages_from_search');

Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.

En caso de infracción, por favor [email protected] Eliminar

Editado en
0

Déjame decir algunas palabras

0Comentarios
Iniciar sesiónRevisión de participación posterior

Artículos relacionados

La búsqueda elástica excluye un elemento anidado de los resultados de búsqueda, obtiene el elemento por id

La búsqueda elástica excluye un elemento anidado de los resultados de búsqueda, obtiene el elemento por id

La consulta de Mongoose rellena el ID de coincidencia de los elementos de búsqueda

La consulta de búsqueda de Wordpress no funciona

Consulta de búsqueda exacta de WordPress

No no excluye la información de la consulta

Obtenga * todos * los ID de video de Youtube de un canal elegido sin usar la consulta de búsqueda

Laravel excluye la identificación actual de los resultados elocuentes de la consulta

Controlar la salida de la consulta de búsqueda de NHIbernate con respecto a los parámetros

Consulta de búsqueda que devuelve el ID propio de los usuarios

Los resultados de la búsqueda en vivo de WordPress redirigen a la página de inicio

La búsqueda de Solr con la cadena de consulta @ devuelve todos los registros

Problemas con la consulta de búsqueda

El uso de exclude () en la consulta de Django no excluye

Sublime excluye la extensión de archivo en "Búsqueda de archivos"

Sublime excluye la extensión de archivo en "Búsqueda de archivos"

La consulta de ElasticSearch ignora los términos de búsqueda adicionales

Elasticsearch muestra los términos del campo de texto para la consulta de búsqueda

Redirigir si cierto término de consulta en la búsqueda de WordPress

Búsqueda personalizada de Wordpress y URL de consulta

Wordpress Post__not_in no funciona cuando se suministra a través de la variable

La búsqueda de Wordpress no funciona con un término de búsqueda que excede los 87 caracteres

C # LINQ Entity Framework consulta que ignora los valores nulos como parte de la búsqueda

Los rieles no pasan la consulta DB en el formulario de búsqueda

Actualizar la tabla después de POST de ajax según los criterios de búsqueda

Búsqueda de Azure: proporcione un perfil de puntuación en la consulta de búsqueda

¿La consulta de búsqueda de mongo php no funciona correctamente?

La consulta de búsqueda de MongoDB devuelve demasiados documentos

La consulta de búsqueda de mongodb no funciona

TOP Lista

CalienteEtiquetas

Archivo