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».

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.

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.
Javier Criado
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.
Mauricio Gelves
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
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.
.
Elías
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!