Warning: Use of undefined constant user_level - assumed 'user_level' (this will throw an Error in a future version of PHP) in /home/customer/www/pisitoenmadrid.com/public_html/blog/wp-content/plugins/ultimate_ga_1.6.0.php on line 524
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.

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.

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:
$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 😉
Warning: Use of undefined constant user_level - assumed 'user_level' (this will throw an Error in a future version of PHP) in /home/customer/www/pisitoenmadrid.com/public_html/blog/wp-content/plugins/ultimate_ga_1.6.0.php on line 524
raul
Hola amigo:
Existe la posiblidad de utilizar estos campos personalizados con un widget para evitar tener que tocar el código.
De no ser así, como puedo hacer que estos campos personalizados se impriman en cada una de las páginas estáticas de mi sitio creado con wordpress?
Desde ya muchas gracias un fuerte abrazo
Warning: Use of undefined constant user_level - assumed 'user_level' (this will throw an Error in a future version of PHP) in /home/customer/www/pisitoenmadrid.com/public_html/blog/wp-content/plugins/ultimate_ga_1.6.0.php on line 524
Lo que ha sido el 2010 | Pisito en Madrid
Warning: Use of undefined constant user_level - assumed 'user_level' (this will throw an Error in a future version of PHP) in /home/customer/www/pisitoenmadrid.com/public_html/blog/wp-content/plugins/ultimate_ga_1.6.0.php on line 524
adrian
Warning: Use of undefined constant user_level - assumed 'user_level' (this will throw an Error in a future version of PHP) in /home/customer/www/pisitoenmadrid.com/public_html/blog/wp-content/plugins/ultimate_ga_1.6.0.php on line 524
Hola! Muy útil el post. Sabrías cómo hacer que se pintara el resultado sólo cuando rellenase el campo personalizado? Estilo a «if have post» = me pinta el post sino sale un mensaje.