Archivo etiquetas: php

Tutorial WordPress: uso de los campos personalizados

26 ene 2010

Estas últimas semanas he estado más desconectado de Twitter, de los blogs, he publicado menos en pisito… Pero todo tiene una explicación y es que he vuelto a algo con lo que no me ponía desde hacía tiempo: programar. Salieron dos proyectos de desarrollo en WordPress en Social Noise y he estado sumergido en ellos. Uno ya ha sido lanzado, Las cosas de Robin, y otro pronto verá la luz :) El caso es que nunca había creado un theme desde cero y la verdad es que me ha encantado.

lascosasderobin

Podría escribir un libro con todo lo que he aprendo haciéndolo pero voy a ir paso por paso y empezar a descubrir cosillas que a lo mejor no sabéis y son realmente útiles y fáciles de implantar. Comienzo con los Campos Personalizados o Custom Fields. Cuando estás escribiendo un nuevo post en WordPress, a final de esa página verás una sección con este nombre que te permite añadir un nombre y lo que quieras en una caja de texto.

custom-field

Lo que se consigue con esto es asociar ‘algo’ a un post y ese algo se guardará bajo el nombre que queramos. Pongo un ejemplo práctico. Cada post del VideoPisito tiene un campo personalizado llamado video con la dirección a la miniatura que sale en el home de cada uno de los posts. De esta forma cuando WordPress carga el listado de posts, accede a ese campo y saca su valor para cada uno de ellos y lo muestra.

Para el blog de Michael Robinson había que jugar mucho con este tipo de cosas. Sin ir más lejos en la barra lateral podemos encontrar un módulo con el último vídeo de apuesta, un listado con los últimos posts acompañados de una miniatura y el vídeo destacado de la semana. Podíamos hacer que esto fuera manual pero es mucho más práctico mediante campos personalizados, en uno poniendo el código del vídeo y en otro la URL de la miniatura. ¡La gran ventaja es que puedes asociar a un post lo que quieras y cuantos quieras!

¿Cómo funcionan? Pues muy sencillo: pincha en Nuevo dentro de campo personalizado en el editor de WordPress, elige un nombre e introduce un valor, por ejemplo, miniatura y la URL de una imagen que quieras usar como miniatura. Ahora tendrás que ir al lugar donde quieres mostrarlas, por ejemplo en la barra lateral, y poner el siguiente código:

<?php
$postslist = get_posts(‘numberposts=10&order=DESC’);
foreach ($postslist as $post) :
setup_postdata($post);
$miniatura = get_post_meta($post->ID, ‘miniatura’, true);
?>

<div class="ultimo-video"><a href="<?php the_permalink() ?>" title="<?php the_title(); ?>"><img src="<?php echo($miniatura) ?>" alt="<?php the_title(); ?>" width="93px" height="50px" align="left" style="margin-left:5px; margin-right:5px;" /></a>

<h2 class="post-title"><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h2>

<small><?php the_time(‘j’) ?> de <?php the_time(‘F’) ?> de <?php the_time(‘Y’) ?></small></p>

</div>
<?php endforeach; ?>

¡No os asustéis! Vamos a analizarlo. En las primeras tres líneas cargo los diez últimos posts (get_posts()) y para cada uno de ellos (foreach) uso la variable $post para cargar sus valores internos, entre ellos están los campos personalizados. En la siguiente línea extraigo el valor de mi custom field ‘miniatura’ (get_post_meta()) y lo almaceno en la variable $miniatura.

Luego lo que hay que hacer es imprimirlo y como podéis ver es sólo echo ($miniatura) en PHP dentro del campo src de la imagen, ya que en mi caso el campo personalizado almacenaba la URL de una imagen. Podéis ver también que uso funciones como the_permalink() o the_title() que imprimen la URL del post cargado y el título respectivamente.

El resultado de este código, con un poco de CSS y JQuery para el scrollbar dinámico, es el listado de los últimos posts con miniaturas que hay en la barra lateral del blog Las cosas de Robin.

Los campos personalizados tienen un potencial grandísimo, sobretodo para automatizar acciones que van asociadas a posts. Algo que recomiendo para desarrollar en WordPress con agilidad es la familiarización con el Codex, donde están todas las funciones del CMS de Automattic. Dudas y críticas a los comentarios ;)

Tip: cabeceras y mascotas aleatorias con PHP

9 dic 2009

En el rediseño de pisito he incluido cabeceras dinámicas, es decir, cada vez que entres saldrá de forma aletoria una imagen con una frase distinta en la parte superior del blog. También he hecho lo mismo con la mascota de pisito, el caracol. Poco a poco iré añadiendo nuevos así que si tienes frases o ideas para el Sr. Snails, puedes comentarlas en este post. El caso es que he recibido algunos emails y tweets preguntando cómo hacerlo. El proceso es muy sencillo.

mascota-pisitoenmadrid-snail

Los pasos a seguir con PHP son:

  • Nombra las imágenes que tengas con el mismo nombre pero añadiendo un número al final, de forma consecutiva, y súbelas al mismo directorio en tu servidor.
  • Genera un número aleatorio entre 1 y el número de imágenes distintas que tengas, y guárdalo en una variable. Esto en PHP se lleva a cabo con la función rand(1,número de imágenes).
  • Mediante HTML muestra la imagen, pero a la hora de poner el número tendrás que usar la variable de PHP con el número aleatorio.

Aquí tienes un ejemplo del código completo. Como es WordPress he usado funciones para mostrar la descripción (bloginfo(‘description’)), la url de la imagen (bloginfo(‘template_directory’)) y el nombre del blog (bloginfo(‘name’)) de forma automática pero sino lo único que tienes que hacer es cambiar esas partes de forma manual. De esta forma mostrarás cabeceras, mascotas y cualquier imagen de forma aleatoria. ¿Fácil, no?


    Hazte Fan

  • facebook
  • twitter