Controla WP_Query como un experto: Propiedades y métodos
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 archivorobots.txto 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!



