Blog sobre desarrollo WordPress en Español Desarrollo WordPress en Español
campos personalizados

Campos personalizados para una plantilla determinada

En alguna ocasión podemos estar interesados en mostrar un metabox con campos personalizados o custom fields para una plantilla determinada o concreta, y no mostrarlos en el resto para tener el back-end limpio y ordenado, y no mostrar más datos de los necesarios.

Pongamos como ejemplo que tenemos una plantilla de página page-proveedor.php, donde tenemos unos campos personalizados de contacto: e-mail y teléfono. Cómo estos campos sólo los mostraremos en el front-end en las páginas que tengan esta plantilla, ¿por qué no hacer lo mismo en el back-end?

Vamos a ver cómo mostrarlos sólo en el caso que estemos editando una página y tengamos seleccionada la plantilla page-proveedor.php. Lo primero es agregar en nuestro functions.php un meta_box con la función add_meta_box, y después las funciones para crear los campos adicionales y guardar los datos al actualizar el post.

También en el functions.php agregaremos un archivo custom-fields.js en el action admin_print_scripts:

Por último, en este archivo custom-fields.js agregaremos estas líneas:

Como vemos, simplemente en el evento change del selector de plantilla de página (que tiene el ID #page_template), hacemos un toggle de nuestro ID del meta_box. El evento Toggle lo que hace es mostrar u ocultar el elemento seleccionado. En este caso le pasamos como parámetro la comprobación de si el valor del selector de plantilla es igual a page-proveedor.php. En caso de que sea true, se mostrará el meta_box, y se ocultará en caso contrario.

Por último lanzamos el evento .change() para que se ejecute en la carga de la página y muestre u oculte el meta_box según nuestras necesidades desde el inicio.

Puede que también te interese

Cómo crear un formulario de log-in/log-out personalizado con WordPress
Cómo crear un formulario de log-in/log-out personalizado con WordPress
En la anterior entrada Cómo restringir el acceso al back-end de WordPress a usuarios no administradores vimos como limitar el acceso al panel de control…
Shortcuts o atajos del teclado en el editor de WordPress
Shortcuts o atajos del teclado en el editor de WordPress
El editor WYSIWYG (What You See Is What You Get – lo que ves es lo que obtienes) de WordPress te permite usar Shortcuts o…
Elimina el campo URL de los comentarios nativos de WordPress
Elimina el campo URL de los comentarios nativos de WordPress
Por defecto WordPress incluye un sistema de comentarios para permitir que los usuarios que visiten tu página puedan comentar y/o aportar sus ideas o pensamientos.…
Extendiendo los campos personalizados o custom fields en WordPress
Extendiendo los campos personalizados o custom fields en WordPress
En una entrada anterior vimos cómo añadir campos personalizados o custom fields al back-end de WordPress de forma elegante, haciendo uso de meta_boxes para ordenar…