Lleva tu blog a otro nivel con los campos personalizados de WordPress

Siempre se ha dicho que si quieres tener un blog profesional y sin limitaciones, lo más recomendado es usar WordPress.org. Existen otras plataformas para blogs como blogger o WordPress.com, pero nunca vas a tener la flexibilidad para hacer todo lo que se te ocurra como con WordPress.org. Eso es lo que me encanta de esta plataforma y por lo que no tengo duda que el paso que di de mi blogspot.com a mi blog en WordPress fue lo mejor que he hecho nunca. como personalizar tu blog wordpressEs posible que al principio pueda requerir una curva de aprendizaje un poco mayor, ya que esta plataforma requiere de su propio hosting, base de datos y demás, que hará que la instalación inicial no sea tan sencilla como la de un blog en blogger. Pero al final, superado ese primer inicio, todo serán ventajas. La mayor ventaja es que no existen límites. Hay miles de plugins para WordPress que podrás usar para añadir todo tipo de funcionalidades a tu blog, pero lo más importante es que dispones del código. Disponer del código te permitirá modificar lo que quieras a tu antojo con unos mínimos de conocimientos de programación, o con la ayuda de alguien que los tenga (necesitáis ayuda? 😉 ). Juntando un poco la posibilidad de cambiar el código a tu antojo y las opciones avanzadas que te da WordPress, hoy os voy a hablar de los Campos Personalizados, o lo que es lo mismo, Custom fields si tu WordPress es en inglés. Estos los encontrarás en cada uno de los artículos y pienso que no mucha gente saca provecho al potencial que realmente tiene esa herramienta.

Introducción a la estructura de un blog en WordPress

Para saber bien el potencial que pueden tener lo campos personalizados y el uso que se les puede dar, vamos a hacer un pequeño resumen a cómo está formado un blog en WordPress y cuál es su estructura de ficheros, los cuales podremos editar para conseguir lo que queramos. Básicamente un blog de WordPress tendrá los siguientes ficheros (esto puede variar en función del tema que tengamos instalado):

  • index.php -> representa la página principal del blog, es decir, la home.
  • single.php -> representa la página de cada uno de los post de forma individual. Con este archivo «pintaremos» la página de un artículo cualquiera. Todos seguirán la misma plantilla.
  • sidebar.php -> será el fichero que representa la sidebar de tu blog.
  • header.php -> representa el encabezado del blog, que se cargará en todas y cada una de las páginas del blog.
  • footer.php -> lo mismo pero para el footer.
  • etc.

Hay más, pero con estos nos es suficiente. Como vemos, cada elemento del blog estará representado por un archivo en concreto. Para el artículo de hoy me centraré en el single.php. Cuando ves cualquiera de tus artículos, estos están pintados gracias a ese archivo. Pensando un poco podemos llegar a una conclusión. Cualquier cambio que haga en ese archivo, se verá reflejado en todos los artículos de mi blog. Por ejemplo, imagínate que quieres añadir un mensaje al final de cada artículo en el que anuncies lo que sea. Pues tan solo tendrás que introducir ese «lo que sea» en la plantilla de single.php y ya aparecerá en todos tus artículos sin tener que irlos editando uno a uno para insertar ese texto o imagen que quieras mostrar. Pero, ¿qué pasa si quieres añadir algo solo a un artículo o a los artículos de una determinada categoría por ejemplo? ¿Cómo harías para decidir si quieres añadir un elemento en unos artículos determinados y en otros no? Ahí es donde entran los campos personalizados de WordPress.

¿Qué son los campos personalizados de WordPress y cómo se crean?

Los campos personalizados nos permitirán definir un elemento y su contenido en cada uno de los artículos de nuestro blog de forma individual. Esto te permitirá editar de una forma más personalizada cada uno de los artículos y decidir si quieres que muestren algún componente determinado o no, según el criterio que decidas, como veremos después con unos ejemplos. Estos campos se definirán a la hora de crear un artículo (Entradas -> Añadir nueva). Lo primero que haremos será habilitar esa opción para que sea visible, ya que es posible que ni la estés viendo. Para ello señalaremos lo que se muestra en la siguiente imagen de la opción «Opciones de pantalla» que veremos en la parte superior derecha:

activar campos personalizados wordpress

Una vez activada la opción, veremos el panel para añadir los campos personalizados en la parte inferior de la pantalla de edición de tu artículo:

campos personalizados wordpress

La forma de añadir un campo personalizado, será sencilla. Lo único que hay que hacer es abrir el desplegable donde pone «Elegir» y seleccionar el que queramos (si ese campo ya lo hemos añadido en algún otro artículo ahí nos aparecerá) o pulsar sobre «Nuevo» para crear otro si es la primera vez que lo vamos a usar.

Luego pulsamos en «Añadir un campo personalizado» y veremos que sube a la parte de arriba indicando que ya está correctamente definido.

En este momento ya tenemos creado un campo personalizado para este artículo, pero… ¿y ahora qué? ¿Qué hago con ello? ¿Qué me puede aportar?

Para responder a estas preguntas vamos a ver

¿Cómo usar los campos personalizados de WordPress?

Ya hemos definido un campo personalizado en un artículo pero con ello realmente no habremos conseguido nada. Eso no será reflejado en ningún sitio a no ser que se lo indiquemos de alguna forma. Os voy a enseñar por tanto cómo mostrar ese campo en cualquiera de las páginas o partes de tu blog. Para ello tenemos que meter un pequeño código allá donde queramos usarlo. Imagínate que, como había comentado, queremos mostrar un texto al final del artículo. Pues bien, vamos a hacerlo con los campos personalizados de WordPress. De esa forma podremos definir en cada artículo cuál será ese texto. Vamos a crear un campo personalizado que se llama «final_articulo». De la forma que he descrito antes, al final llegaríamos a esta situación: ejemplo campo personalizado WP Como veis, ya tenemos un campo con ese nombre y el contenido del mismo es lo que he puesto en «Valor». Para este ejemplo concreto, lo que tendríamos que editar para añadir este campo al final de los artículos, sería el fichero single.php. Ahí añadiremos esta línea donde queramos que aparezca lo que hemos puesto en «Valor»:

global $post; printf(‘get_post_meta($post->ID, «final_articulo«, true)’);

Recordad que esto es código php así que tendrá que estar insertado entre «

«. Con la primera linea estaremos recuperando toda la información del post (en este caso para obtener el ID), y con la segunda estaremos mostrando el contenido del campo final_articulo que hemos definido como campo personalizado. Así de fácil estaríamos mostrando el texto «Este texto será lo que se mostrará en los artículos donde haya definido este campo». Obviamente ahí pondrás lo que quieras. Bien, podemos deducir que eso lo leerá para todos los artículos, ya que lo hemos insertado en el fichero single.php, pero solo se mostrará en los casos en los que hayamos definido ese campo concreto en la pantalla de edición del artículo que sea. De esa forma vemos cómo estamos personalizando algunos artículos (los que tendrán ese campo) y otros no. Para hacerlo más fino, podemos añadir la condición para que solo lo muestre en el caso en el que se haya definido realmente ese campo. Eso sería así:

if (get_post_meta($post->ID, «final_articulo», true)!=»){ —-> código que he puesto antes <—– }

Así en el caso de que un artículo no tenga ese campo, no intentará mostrarlo. Aunque como he comentado, el resultado será el mismo que sino lo ponemos.

Más casos prácticos de uso de los campos personalizados de WordPress

Una vez que ya sabes lo que son los campos personalizados y cómo usarlo, te darás cuenta de que se abren un gran número de posibilidades para poder personalizar como quieras tu blog. Te voy a dar algunos ejemplos de cómo podrás usarlos, e incluso de cómo los uso yo. Imagínate que tienes artículos de varias categorías en tu blog. Por ejemplo vamos a suponer que en algunos artículos hablas de sistemas para ganar dinero con las plataformas de afiliación, y en otros sobre cómo regar las plantas en verano. Lo he llevado a un caso extremo de temáticas completamente diferentes, pero así lo entenderemos mejor. Ahora imagínate que quieres añadir un banner en la parte superior de tu blog. Si añades un banner de algo relacionado con plantas, a las personas que hayan llegado al artículo de sistemas de afiliación no les aportará nada. Lo mismo pasará en el caso contrario. Gracias a los campos personalizados, podremos definir si queremos que se muestre un banner concreto en un artículo concreto. ¿Interesante no? Lo único que tendríamos que hacer sería definir, como hemos visto antes, un campo personalizado que se podría llamar «banner_top» con el código del banner que fuera. Después hemos dicho que lo queríamos mostrar en la cabecera del blog. Por tanto tendríamos que editar el archivo «header.php» para añadir el código que hemos visto antes más o menos. Lo que podríamos hacer ahí sería definir que se mostrara un banner para todos los artículos del blog en general, pero que se muestre otro si algún artículo tiene definido ese campo. Podéis ver un ejemplo si veis cualquiera de los artículos de monetizados.com, donde veréis el mismo banner arriba, o si veis el artículo en el que hablo sobre Hostgator veréis que se muestra otro banner distinto que he seleccionado SOLO para ese artículo en concreto. ¿Cómo consigo eso? Tendría que crear el campo «banner_top» y poner el código del mismo para los artículos que quiera que muestren otro banner distinto a los del resto del blog. Después pondría un código como el siguiente en el archivo header.php, o en cualquier otro si quiero mostrarlo en otro lado.

if (get_post_meta($post->ID, «banner_top«, true)!=»»){ echo ‘
‘.get_post_meta($post->ID, «banner_top«, true).’
‘; } else { echo ‘
gana premios con gifthunterclub
‘; }

Con eso digo que se muestre el banner que he definido en el campo personalizado «banner_top» si el artículo tiene alguno, y sino que muestre otro cualquiera (que es el que se muestra actualmente en la parte superior de mi blog en casi todos los artículos). Pues bien, como veis esto abre un buen abanico de posibilidades. En otros artículos os iré hablando de otras utilidades interesantes que se le puede dar a esta opción de WordPress, así cómo algunas cosas de más nivel relacionados con ellos y metiéndonos incluso en la base de datos para manipularlos. ¿Conocías esta opción de WordPress? ¿La usas? ¿Qué otras utilidades se te ocurren para usarla? Cualquier artículo será como siempre agradecido.

Rate this post

Esta entrada tiene 11 comentarios


  1. Notice: Only variables should be assigned by reference in /home/monetizados/web/monetizados.com/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 590
    Javier

    Hace 3 o 4 años que no toco WordPress, y ahora ando poniéndome al día para migrar el blog desde Blogger… lo cierto es que tus artículos sobre la plataforma me están siendo muy útiles. Muchas gracias.


    1. Notice: Only variables should be assigned by reference in /home/monetizados/web/monetizados.com/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 590
      Javier Elices

      Hola Javier!

      Me alegro que te sean de utilidad los artículos. Ya sabes que si tienes alguna duda sobre algo, puedes preguntar.

      Un saludo y suerte.


  2. Notice: Only variables should be assigned by reference in /home/monetizados/web/monetizados.com/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 590
    Luis

    A mi WordPress me parece una excelente plataforma ya que siento que es muy fácil configurar un blog, sobre todo si no se tiene experiencia.


    1. Notice: Only variables should be assigned by reference in /home/monetizados/web/monetizados.com/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 590
      Javier Elices

      Hola Luis, te refieres a wordpress.com? en el que no hay que instalar hosting ni nada… O te refieres al de instalarlo en tu propio servidor?

      En cualquier caso, una vez que se tiene funcionando es muy fácil de configurar y de usar.

      Un saludo y gracias por comentar.


      1. Notice: Only variables should be assigned by reference in /home/monetizados/web/monetizados.com/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 590
        Luis

        Me refiero al de WordPress.org que creo que aunque hay que hacer la instalación por medio del hosting todo es muy fácil.


        1. Notice: Only variables should be assigned by reference in /home/monetizados/web/monetizados.com/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 590
          Javier Elices

          Si, totalmente de acuerdo!

          Saludos.


  3. Notice: Only variables should be assigned by reference in /home/monetizados/web/monetizados.com/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 590
    Santiago

    Interesante , siempre me pregunte cual era la utilidad de ese campo, muchas gracias!


    1. Notice: Only variables should be assigned by reference in /home/monetizados/web/monetizados.com/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 590
      Javier Elices

      Gracias a ti Santiago,

      Ya nos comentarás si consigues sacarle algún partido y para qué lo has usado.

      Saludos!


  4. Notice: Only variables should be assigned by reference in /home/monetizados/web/monetizados.com/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 590
    Raquel Hatfield

    Muchas gracias, Iván; me has ahorrado mucho tiempo. Espero que en próximas versiones de Joomla se les ocurra añadir campos personalizados en los artículos. Fantástico Tutorial.


  5. Notice: Only variables should be assigned by reference in /home/monetizados/web/monetizados.com/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 590
    daniel

    Hola, buen artículo

    La verdad es que llegué a él buscando lo siguiente:

    Qué pasa si tengo ya configurado 100 post con un campo personalizado en particular al cual sólo quiero renombrarle por que consideré que deberia llamarse de otra manera pero manteniendo su valor?

    Existe una manera de hacerlo desde bd en una accion masiva?

    Sé cómo borrarlos desde la bd, pero no quiero perder el valor de esos campos. Tampoco es opción, crear el campo nuevamente para todos los post (son muchos) solo quiero cambiar el nombre del campo, sin perder si valor que tienen actualmente.

    Cómo se debería hacer?

    Saludos


    1. Notice: Only variables should be assigned by reference in /home/monetizados/web/monetizados.com/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 590
      Javier Elices

      Hola Daniel,

      Sí, es posible.

      Si buscas la tabla en tu base de datos de «……_postmeta» filtra por el campo meta_key el nombre que le hayas puesto a ese campo.

      Te saldrán todas las filas que has definido. Entiendo que 100, que son los posts donde lo has puesto.

      Puedes renombrar el valor de ese campo por el nombre que tengas al nuevo que quieras.

      Para ello lo puedes hacer con un UPDATE normal que te cambiará todos.

      Ya me dirás si te sirve o si quieres más detalle en algo en concreto.

      Un saludo!

Deja una respuesta

  Acepto la política de privacidad