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

Añadir clases par/impar en los listados de WordPress
Añadir clases par/impar en los listados de WordPress
En esta entrada vamos a ver cómo introducir las clases par/impar en los listados de WordPress de tres formas diferentes. A veces puede resultar útil…
Carga condicional de JS y CSS para mejorar el rendimiento y la velocidad de carga
Carga condicional de JS y CSS para mejorar el rendimiento y la velocidad de carga
En esta entrada vamos a ver una técnica de WPO muy importante dentro de la estrategia de optimización y mejora de rendimiento y velocidad de…
Creando un plugin para WordPress parte 3: Escribiendo el plugin
Creando un plugin para WordPress parte 3: Escribiendo el plugin
1. Creando un plugin para WordPress: Planificación y planteamiento 2. Creando un plugin para WordPress: Estilo del Código 3. Creando un plugin para WordPress: Escribiendo…
Permite administrar los menús a un usuario con rol Editor
Permite administrar los menús a un usuario con rol Editor
Como sabrás, en WordPress existe una gestión de usuarios con diferentes niveles de permisos o capabilities. Por defecto la gestión de menús desde el panel…