El bucle (VIII) Trabajar fuera del bucle

Puede darse la situación en la que necesitemos trabajar con algunos datos de entradas fuera del bucle y para ello WP pone a nuestra disposición una serie de funciones que devuelven información genérica sobre las entradas. Estas funciones son:

  • wp_page_menu(): Crea un menú con las páginas de WP
  • wp_list_pages(): Muestra una lista de las páginas como enlaces
  • wp_list_categories(): Muestra una lista de categorías como enlaces
  • wp_list_bookmarks(): Muestra los enlaces guardados en el subpanel Enlaces
  • wp_tag_cloud(): Muestra una nube de etiquetas
  • next_post_link(): enlace para mostrar las entradas anteriores
  • previous_post_link(): enlace para mostrar las entradas siguientes

Para poder mostrar una lista de las páginas, se debe de utilizar la función de la siguiente forma

<?php
wp_list_pages('title_li=nombre de la lista');
?>

Podemos dejar title_li= y la lista no tendrá nombre…

De este modo WP nos genera una lista con los enlaces de las páginas que hay en él.

Aunque para generar un menú podemos utilizar la función wp_page_menu(), al cual se le puede introducir un argumento para que nos cree un enlace al inicio show_home, no tiene título por defecto y ademas crea el código dentro de un div al cual se le puede dar una clase para poder darle estilo de la siguiente forma…

wp_page_menu('show_home=1&menu_class=menu&sort_column=menu_order');

También podemos trabajar con wp_list_categories() de la siguiente forma:

wp_list_categories('tilte_li=&depht=4&orderby=name&exclude=3,5,12');

Esto hace que la lista no tenga nombre, introduce 4 niveles de jerarquía queremos mostrar, los ordena por nombre y excluye las categorías 3, 5, y 12.

Las funciones next_post_link() y previous_post_link() se suelen utilizar al finalizar un bucle y sirven para moverse por consultas continuas del propio bucle, pero hay que tener en cuenta que next_post_link() muestra las entradas más antiguas, mientras que previous_post_link() las más modernas.

Pero podemos incluso mostrar información sobre una entrada especifica, por ejemplo, supongamos que queremos mostrar los datos de una entrada, para ello lo unico que debemos de saber es su id y ponernos a trabajar:

$id = 9;
$elpost = get_post($id);
echo 'Título del post: '. $elpost->post_title.'<br/>';
echo 'Contenido del post: '. $elpost->post_content.'<br/>';

De esta manera podemos obtener los datos que requiramos de una entrada, aunque hay que tener en cuenta que en la función get_post() no podemos poner un número literal pues daría error, y necesita que el argumento sea introducido por una variable. Esta función puede recibir otro parámetro, opcional, que nos dice como queremos que sea devuelto el objeto, como por ejemplo con un array asociativo: get_post($id, ARRAY_A)

Pero la mejor forma de mostrar los datos como ya hemos dicho anteriormente es por medio de las etiquetas de plantilla, pero estas en principio no se encuentran disponibles, pero podemos acceder a ellas por medio de la función setup_postdata() para tener acceso a ellas.

$miid = 9;
$elpost = get_post($miid);
setup_postdata($elpost);
the_title();
the_content();

También podemos acceder a otras funciones del bucle desde fuera como pueden ser:

  • the_author_meta()
  • get_the_title()

Pero estas funciones tienen que llevar por argumento el id del que deseemos recoger los datos, de lo contrario no funcionaran. Cosa que no ocurre cuando están el bucle, que recogen la id de forma automática.

Con esto terminamos el trabajo con el bucle, que como podréis observar es muy potente y con lo que ya se pueden empezar a lograr resultado espectaculares en la presentación de los datos… de hecho mientras me preparaba estas entradas tenía en la mente una frase que me hacía mucha gracia:

loop controls, controls wordpress