1. Code
  2. Coding Fundamentals
  3. Rest API

Controla WP_Query como un experto: Propiedades y métodos

Bienvenido a una nueva parte de nuestra serie "Controlar WP_Query a nivel experto". ¿Qué tal ha ido hasta ahora? Espero que estés disfrutando estos tutoriales tanto como yo disfruto escribiéndolos.
Scroll to top
This post is part of a series called Mastering WP_Query.
Mastering WP_Query: Actions and Filters
WP_Query Arguments: Posts, Pages, and Post Types

Spanish (Español) translation by Eva Collados Pascual (you can also view the original English article)

Bienvenido a una nueva parte de nuestra serie "Controlar WP_Query a nivel experto". ¿Qué tal ha ido hasta ahora? Espero que estés disfrutando estos tutoriales tanto como yo disfruto escribiéndolos.

En este tutorial, aprenderás sobre las propiedades y los métodos de la clase WP_Query. Pero primero, creo que es conveniente hablar sobre cuál es el papel de las "propiedades" y los "métodos" en una clase.

¿Vamos?

¿Qué Son Exactamente las Propiedades y los Métodos?

En PHP, existe una forma de escribir código de forma limpia: hablamos de la programación orientada a objetos (object-oriented programming, o OOP). Con OOP, usamos las "clases" como modelos, he cogido el término de uno de los clásicos artículos de sobre Código en Tuts+, "Programación Orientada a Objetos en PHP para Principiantes" escrito por Jason Lengstorf:

Una clase podría entenderse, por ejemplo, como el plano en la construcción de una casa. Se ocupa de definir la futura forma de la casa sobre papel, estableciendo y planificando con claridad las relaciones entre las diferentes partes de la misma, aunque la casa todavía no exista.

(Y recuerda que WP_Query es una clase principal del núcleo de WordPress.)

Una vez entiendas el concepto de las clases en PHP, comprender qué son las propiedades y los métodos será muy fácil, ya que estas palabras son sinónimos de "variables" y "funciones". Sí, las propiedades son variables en una clase PHP y los métodos son funciones.

Ahora vamos a ver qué son, decubramos cada una de estas propiedades y métodos.

Advertencia: No sería muy inteligente cambiar directamente las propiedades. Tal como se indica en el Codex, deberías interactuar con ellas usando los métodos de WP_Query.

Propiedades de la Clase WP_Query

Empecemos con las propiedades, o las variables, de la clase WP_Query.

La Cadena de Consulta: $query

Esta propiedad almacena la consulta pasada al objeto $wp_query.

La Matriz de Variables de Consulta: $query_vars

Esta propiedad almacena una matriz de variables asociativas (y sus valores) de $query.

El Objeto Consultado: $queried_object

Esta propiedad almacena el objeto que está siendo consultado, sería el objeto $post si fuese una cadena de consulta para una entrada, o el objeto $author si fuese una consulta sobre el autor.

El ID del Objeto Consultado: $queried_object_id

Esta propiedad almacena el ID del objeto consultado.

Los Posts Devueltos Por la Consulta: $posts

Esta propiedad almacena las entradas o posts devueltos tras la consulta.

El Número de Posts Que Serán Mostrados: $post_count

Esta propiedad almacena el número de entradas para la actual consulta. 

El Número de Posts Devueltos a Raíz de la Consulta: $found_posts

Esta propiedad almacena el número de posts sin la cláusula LIMIT de la consulta SQL.

El Número de Páginas: $max_num_pages

Esta propiedad almacena el número de páginas, se calcula dividiendo $found_posts entre $posts_per_page.

El Índice del Post Actual: $current_post

Esta propiedad almacena el número de índice del elemento actual en el Loop. Por ejemplo, es -1 si el Loop acaba de empezar y se incrementa con el método next_post().

El Post Actual: $post

Esta propiedad almacena el post actual.

Booleanos Condicionales de Etiqueta: $is_ {condición}

Las siguientes propiedades están almacenadas como boleanos, y proporcionan información sobre el estado del post actual:

  • $is_single: Comprueba si es un single post de cualquier post type (excepto los tipos de posts "attachment" y "page") o no lo es.
  • $is_page: Comprueba si se trata o no de una página.
  • $is_archive: Comprueba si se trata de una página de archivo o no.
  • $is_preview: Comprueba si se trata de la vista previa de un post o no.
  • $is_date: Comprueba si se trata de una página de archivo basada en la fecha de publicación o no.
  • $is_year: Comprueba si se trata de una página de archivo basada en el año de publicación, o no.
  • $is_month: Comprueba si se trata de una página de archivo basada en el mes o no.
  • $is_time: Comprueba si se trata de una página de archivo basada en el momento en el que se ha hecho la publicación (hora, minuto o segundo) o no.
  • $is_author: Comprueba si es la página de archivo de un autor concreto o no.
  • $is_category: Comprueba si se trata de la página de archivo perteneciente a una categoría o no.
  • $is_tag: Comprueba si se trata de la página de archivo de una etiqueta o no.
  • $is_tax: Comprueba si es la página de archivo de una taxonomía o no.
  • $is_search: Comprueba si es una página de "resultados de búsqueda" o no.
  • $is_feed: Comprueba si es o no un feed.
  • $is_comment_feed: Comprueba si es o no un feed de comentarios.
  • $is_trackback: Comprueba si se trata de un trackback o no.
  • $is_home: Comprueba si se trata de la página principal del blog o no.
  • $is_404: Comprueba si se trata de una página de error 404 o no.
  • $is_comments_popup: Comprueba si se trata de una ventana de popup o no.
  • $is_admin: Comprueba si se trata del panel de administración o no.
  • $is_attachment: Comprueba si se trata de un archivo adjunto o no.
  • $is_singular: Comprueba si se trata de un "single post" de cualquier "post type" (incluyendo los post types "attachment" y "page") o no.
  • $is_robots: Comprueba si se trata de una consulta dirigida al archivo robots.txt o no.
  • $is_posts_page: Comprueba si se trata de la "Página de Entradas" (definida en la página para los ajustes de lectura del panel de administración) o no.
  • $is_paged: comprueba si es una consulta paginada y si no es la primera página.

Métodos de la Clase WP_Query

Ahora que hemos acabado con las propiedades, vamos a empezar con los métodos (funciones) de la clase WP_Query

init()

Este método sencillamente inicia el objeto, estableciendo todas las propiedades a los valores NULL, 0 o FALSE.

parse_query( $query )

Este método utiliza la propiedad $query para procesar la consulta y ordenar todas las demás propiedades (exceptuando $posts, $post_count, $post y $current_post).

parse_query_vars()

Este método vuelve a analizar las variables de la consulta.

get( $query_var )

Este método obtiene una variable de consulta dada.

set( $query_var, $value )

Este método asigna un valor específico a la variable de consulta dada.

&get_posts()

Este método devuelve el post solicitado mediante la consulta y ordena las propiedades $posts y $post_count.

next_post()

Este método incrementa el índice de $current_post y avanza hasta el siguiente post en $posts, devolviendo el post objeto actual. (Para que este método funcione correctamente se debe usar dentro de un Loop).

the_post()

Este método establece la variable global $post con datos del siguiente post. (Este método debe utilizarse dentro de un Loop para que funcione correctamente.)

have_posts()

Este método comprueba si queda algún post con el que seguir trabajando, y devuelve FALSE si no existe ninguno. (Para que este método funcione correctamente debe usarse antes del Loop.)

rewind_posts()

Este método simplemente restablece las propiedades $current_post y $post.

&query( $query )

Este método llama a dos de sus métodos hermanos, parse_query() y get_posts() y devuelve el resultado de get_posts().

get_queried_object()

Este método devuelve el objeto consultado. (Establece $queried_object si es que aún no está definido).

get_queried_object_id()

Este método, similar a la anterior, devuelve el ID del objeto consultado ($queried_object_id).

Consejo rápido: Si hay un signo "&" antes de un método, significa que el método devuelve por referencia.

Terminando por hoy

Espero haber podido explicarte con claridad qué significan las "propiedades" y los "métodos" para las clases. Si has logrado entender el propósito de las propiedades y los métodos de la clase WP_Query, ¡podré decir que he hecho un trabajo decente!

¿Añadirías algo en este artículo? Comparte tus ideas con nosotros mediante un comentario en la sección que viene a continuación. Y si te ha gustado el artículo, no olvides compartirlo.

¡Nos vemos en la siguiente parte de esta serie!