Obtenga TODOS los tipos de publicaciones en WordPress en query_posts

1 minuto de lectura

Estoy usando query_posts para obtener una lista de las publicaciones más populares. Estoy usando varios tipos de publicaciones personalizadas y, en lugar de incluirlas todas en la consulta, me gustaría una consulta que las incluya todas, incluso si creo más.

Esto es lo que tengo:

query_posts(array(
    'meta_key' => 'post_views_count',
    'orderby' => 'meta_value_num',
    'order' => 'DESC',
        'post_type' => array('posttype1', 'postype2', 'posttype3')
    )
);

Si no incluyo el post_typesolo obtiene el tipo de publicación estándar, post. ¿Alguien tiene alguna idea?

avatar de usuario
Nilambar Sharma

Puedes usar 'post_type' => 'any' para obtener de todos los tipos de publicaciones. Consulte esta documentación. http://codex.wordpress.org/Class_Reference/WP_Query#Type_Parameters

Nota: Se recomienda encarecidamente utilizar WP_Query más bien que query_posts. https://wordpress.stackexchange.com/a/1755/27998

  • Gracias, funciona de maravilla: investigaré WP_query, gracias por señalarme en esa dirección.

    – pshoeg

    1 de junio de 2015 a las 17:25

'post_type' => 'any',

Esto obtiene todas las publicaciones excepto las revisiones. https://developer.wordpress.org/reference/classes/wp_query/#post-type-parameters

Entonces tu consulta sería:

query_posts(array(
    'post_type' => 'any',
    'meta_key' => 'post_views_count',
    'orderby' => 'meta_value_num',
    'order' => 'DESC',
        'post_type' => array('posttype1', 'postype2', 'posttype3')
    )
);

Si quieres usar get_posts()la única solución es usar 'post_type' => get_post_types()

Ejemplo que devuelve TODAS las publicaciones de CUALQUIER tipo de publicación:

$posts = get_posts([
  'post_type' => get_post_types(),
  'post_status' => 'publish',
  'numberposts' => -1,
]);

¿Ha sido útil esta solución?