Comparando valores en los campos personalizados
Hagamos de cuenta que queremos mostrar nuestro estado de ánimo en cada post... bien, lo primero que haremos seleccionar los diferentes tipos de "moods" en los que podríamos encontrarnos. Estas imágenes las guardamos igual dentro de nuestro theme en la carpeta de images que es donde las mandaremos llamar.

El ejemplo lo armaremos con estos 5 estados de ánimo, en órden serían:
- llorando
- apenado
- enojado
- feliz
- y la última que será la que se muestre en caso de que no pongamos nada
Vamos a agregar una nueva entrada y en la parte de abajo donde se encuentran los custom fields pongamos el name = mood y value = enojado de tal forma que nos quede así...

Si se dan cuenta ahora solo estamos asignando el "estado de ánimo" que fué enojado, sobre este vamos a hacer un par de condicionales para definir qué imagen vamos a mostrar.
Le damos clic en Add custom field y abrimos nuestro archivo single.php , también pueden mostrarlo en index.php ó donde gusten pero en este caso vámonos a single.php, después del loop ponemos la siguiente línea:
-
<?php $mood = get_post_meta($post->ID, "mood", $single = true); ?>
Ok, ya hemos mandado a llamar el valor de mood y lo estamos guardando en la variable $mood, viene la parte interesante
De una manera "extensa" pero entendible quedaría así:
-
<?php if($mood == 'llorando') { // SI EL VALOR ES "LLORANDO" ?>
-
<img class="alignright" src="<?php bloginfo('template_url'); ?>/images/mood_llorando.png" alt="<?php the_title_attribute(); ?>" />
-
<?php }elseif($mood == 'apenado') { // SI EL VALOR ES "APENADO" ?>
-
<img class="alignright" src="<?php bloginfo('template_url'); ?>/images/mood_apenado.png" alt="<?php the_title_attribute(); ?>" />
-
<?php }elseif($mood == 'enojado') { // SI EL VALOR ES "ENOJADO" ?>
-
<img class="alignright" src="<?php bloginfo('template_url'); ?>/images/mood_enojado.png" alt="<?php the_title_attribute(); ?>" />
-
<?php }elseif($mood == 'feliz') { // SI EL VALOR ES "FELIZ" ?>
-
<img class="alignright" src="<?php bloginfo('template_url'); ?>/images/mood_feliz.png" alt="<?php the_title_attribute(); ?>" />
-
<?php }else { // SI EL VALOR ES CUALQUIER OTRO ?>
-
<img class="alignright" src="<?php bloginfo('template_url'); ?>/images/mood_default.png" alt="<?php the_title_attribute(); ?>" />
-
<?php } ?>
El resultado que obtendremos será algo como esto, dependiendo el valor que le asignen al custom field mood.


Hasta este punto ya podemos usar los campos personalizados, pero si quieren optimizar el código, pueden hacerlo de la siguiente manera...
-
<img class="alignright" src="<?php bloginfo('template_url'); ?>/images/mood_<?php if($mood == 'llorando') { echo "llorando.png"; } elseif ($mood =='apenado') { echo "apenado"; } elseif ($mood =='enojado') { echo "enojado"; } elseif ($mood=='feliz') { echo "feliz"; } else { echo "default"; } ?>.png" alt="<?php the_title_attribute(); ?>" />
Seguramente todavía se puede hacer más corto, pero ahora pensando un poco mientras hacía el tutorial, qué pasa si quiero hacerlos "indefinidos" osea que yo pueda tener un "x" número de imágenes que correspondan a "x" número de estados, entonces lo que haremos será utilizar la variable $mood también como nombre del archivo, así es que si en algún momento se nos ocurre algún nuevo estado no tendremos que estar agregando condicionales para cada uno... imaginen que nos quedaría algo como esto:
mood_$mood.png
Entonces en este caso si ponemos en el mood algo como shock, tendremos que tener una imagen que se llame mood_shock.png
Vamos vamos... vé a la siguiente página...
26 comentarios para Cómo usar los custom fields en WordPress
Primis…
Excelente tutorial, muy bien explicado y por lo tanto totalmente entendible para los mortales.
Lo interesante del tutorial es que te explica el uso que le puedes dar a los cutom_fields en mi caso Mauricio ha hecho uso de esto en dos de mis sitios: malditoweekend.com y antesdelafama.com
Muy bueno el tutorial,
mientras lo leía, me preguntaba si esto puede hacerse aún más interactivo al permitir modificar los valores del CF a partir de factores externos; por ejemplo: supongamos que la variable mood va variando dependiendo de la cantidad de lecturas o comentarios que tiene el post.
¿Existe alguna funcionalidad en WP que permita modificar el valor de un CF para un post determinado?
Saludos.
Very nice!
Muy buen post, al estilo de los que a mi me gustan. Te felicito y que bueno que estás de regreso.
Creo que lo que acabo de leer acá me va a ayudar mucho.
un saludo desde Guatemala.
Los espero en mi blog: http://attakinsky.com/
El tutorial es bastante simple, y muy util para aquellos que recien estan empezando con wordpress. Buen trabajo.
terrible el post… ja.. me encanto… estaria bueno que pongan mas ejemplos.. para gente que no entiende nada de php y demas… entonce spodrian tener mas chances de usar estos ejemplos y modificarlos un poco a conveniencia de cada uno.. si lo pondrias en taringa.. +10 jejej
Excelente post, muchas gracias, me alegro de que estés de vuelta!
Exelente!! , No me había tomado mi tiempo para revisar los Custom Fields, y la verdad, me gustó la manera en como lo explicas.
Felicidades por tu Blog!
WoW, es cierto de esta forma puedo solucionar algo q estoy desarrollando, gracias por el blog, por la info, por estar
hey Infected, que bueno que volviste, siempre me daba una vuelta por acá, hasta q hace poco vi contenido nuevo, que bueno !
Buen tutorial, pense que incluiria eso si algo que no he podido encontrar ni en plugon ni codigo, que es como almacenar info en los custom fields, para no tener que agregarla cada vez, tienes conocimiento de algo como esto?
Saludos
Hola, me ha encantado en tutorial… y lo he puesto en practica…
Ahora hay un problema, en mi blog somos varios los que escribimos, yo soy el Administrador y las demas cuentas de usuarios tienen el rol de AUTOR…… y wordpress dice que NO TIENEN AUTORIZACION PARA HACER ESO.
¿Como se soluciona?
Te la rifaste con el tuto… Creo que es el mejor tuto que he leído, Felicidades, sigue así.
Muy útil, hace tiempo que buscaba un post como este.
Saludos!
Un post muy interesante. Gracias por el tutorial!
espectacular ahora lo voy a usar
Muy bueno!
Esta estupendop el post.. la verdad no sabia como usar eso de custom fileds… y ya me has dado un gran panoramo y muchas a las para empezar a desarollar algo… ya vere que cos… gracias..
y como podemos modificar el valor del field desde la entrada… osea me refiero se puede realizar alguna consulta sql…??
gracias por aportar cosas de wordpress. Realmente uso el campo pero con plugins o temas que lo tienen ya implementado. Pero me ayudará a crear mis propias composiciones.
además de mostrar imágenes, ¿qué otra cosa útil podríamos hacer con los custom fields?
Sos un verdadero maestro Infectedfx
idolo !!!
Cool… Esta super este tuto, y yo que andaba buscando más info sobre los custom fields…
Muy bueno el artículo, sobre todo porque me ha ayudado a entender el uso de los custom fields, pero quisiera saber si me pueden ayudar con algo que estoy desarrollando.
Estoy desarrollando un formulario para publicación de contenido, el cual he implementado un campo para agregar imágenes que luego se insertarán en el artículo por medio de custom fields, el hecho es que el usuario puede agregar hasta 4 imágenes, es decir puede ser menos, pero no más, y lo que quiero es una funcion que si el usuario sube una o más imágenes, esta se muestre.
El resumen de lo que quiero hacer lo pueden encontrar en el siguiente post que he publicado para pedir ayuda: http://ayudawordpress.com/foro/topic/necesito-ayuda-para-terminar-de-elaborar-formulario-de-publicacion-de-entradas
Excelente, muchas gracias me sirvio de gran ayuda para una idea que tenia en mente para mis blogs.
Un saludo y felicitaciones por tu sitio!
Muy bueno tu tutorial
me sirvió de mucho!! pero tengo un pequeño problema… es posible poder ocultar el customfield de la imagen? porque a mi me sale la imagen tal cual explicas en el tutorial, pero también me aparece el campo con el link de la imagen,… eso se puede ocultar de alguna manera?? me sería de gran ayuda saberlo..
Saludos!
Estupendo tutorial. Muy útil, claro y conciso.
Estaba pensando en utilizar algo así para mostrar un contenido externo mediante un iframe en cada post. Supongo que el procedimiento será similar al de mostrar una imagen, pero variándole el contenido de la URL del iframe. Voy a probar a ver qué tal sale la cosa
Saludos.