Blog personal de IT, viajes y otros hobbies

No uses el título para programar

¡No uses el título de tus páginas para programar!

Bendita profesión que día a día nos enseña a base de palos en la frente. Hoy me llama un cliente diciéndome que no veía cierta funcionalidad en su web. Luego de investigar un poco me doy cuenta que había cambiado el título y el slug de una de las páginas de WordPress, y ¡Zas! toda la programación de varios días que se va por el drenaje con un simple «actualizar página».

Plantilla page-slug de la jerarquía de plantillas

El decirle a nuestro cliente – La página debe llamarse «Atención al cliente», caso contrario el formulario no funcionará – no parece muy elegante. Utilizar este tipo de programación es limitar la libertad de carga de contenido de la web y un posible dolor de cabeza a futuro.

En mi día a día son pocos los elementos que puedo a atar a este tipo de información, entre ellos:

  • Conjuntos de campos de ACF y
  • Plantillas de temas de WordPress.

Posible solución

La única solución que se me viene a la mente es ofrecer distintas plantillas de páginas. De esta forma, el usuario podrá modificar el título y slug de las distintas páginas como así lo desee sin perder la relación con posibles campos de ACF o plantillas de WordPress.

Campos de ACF

Cuando des de alta campos de ACF solo debes cambiar la ubicación  por «Plantilla de página» y luego seleccionar el valor correspondiente.

acf ubicacion plantilla pagina

Plantillas de WordPress

No utilices la jerarquía de plantillas con el formato page-$slug.php o te verás envuelto en posibles problemas a futuro. En su lugar crea plantillas para utilizar con las páginas. Es relativamente simple: Solo debes crear un fichero en la carpeta de tu tema de WordPress con el nombre que desees (aunque es conveniente que utilices un nombre que facilite su comprensión como por ejemplo page-tpl-atencion-al-cliente.php) y luego poner este código en las primeras líneas.

<?php
/**
 * Template Name: Atención al cliente
 */

Con estas recomendaciones puedes quedarte tranquilo que tu funcionalidad no se verá afectado por la carga de datos de tus clientes.

Anterior

¡Quieto todo el mundo! ¡Esto es un pre_get_posts!

Siguiente

Añade código a tus presentaciones Keynote

  1. Hola,
    Yo creo que depende del uso que les vayas a dar.
    Para páginas concretas, lo ideal es page-$id.php, que funciona aunque el cliente cambie el slug.
    Y si es para varias páginas, la mejor opción es crear una plantilla de página.

    • Hola Javier y gracias por tu comentario. Es verdad que utilizando el page-$id.php te libras del problema de los titulares, pero también estás atando la programación a un ID particular. Si desarrollas temas o plugins tienen que funcionar en cualquier instalación de WordPress y en forma independiente de las entradas o páginas que cree el usuario.
      Un saludo,
      Mauricio

  2. Antonio R.

    Lo suyo para estas cosas son las plantillas de páginas que vienen con WordPress, sin duda para mí. page-$slug.php o page-$id.php solo para cosas muy concretas. ACF para esto no lo veo tp, si ya viene la opción de plantillas de páginas en WordPress para que mezclarlo con un plugin de terceros.
    .

    • Hola Antonio.

      El slug no se puede usar, obviamente. En cuanto al ID, el problema es si se traslada la página de contacto a una nueva, y con la Plantilla de Página, tienes esto cubierto con tal de que se asigne a la página en cuestión, tal como comenta Mau más abajo.

      Un saludo!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Funciona con WordPress & Tema de Anders Norén