Si has creado nichos o webs grandes para clientes, esto te interesa.
Me ha pasado varias veces que he tenido que crear muchas URLs para diferentes localizaciones dentro de una misma web.
Por ejemplo: sacar-dni-madrid
Ahora ponte que quiero insertar para cada URL un shortcode de un plugin. Pues que automatizo o me puede dar algo.
Claro, con una ciudad parece fácil. Pero ahora ponte a hacer eso con las +50 ciudades capitales que tiene España. Y encima si quieres atacar otros municipios más pequeños, ni te cuento.
En uno de mis últimos proyectos (en unos meses igual te cuento si me ha funcionado 😜), tenía que insertar un shortcode diferente para cada URL. En este caso, era un shortcode del plugin WP Ninja Tables para mostrar unas tablas con ubicación, teléfono y horario.
Como soy fan de automatizar y de trabajar lo menos posible pero de manera eficiente, me puse a investigar cómo insertarlos de manera dinámica.
Spoiler: Dentro de Oxygen NO puedes insertar Shortcodes de manera dinámica (como harías con otros elementos de manera normal) por temas de seguridad del propio WordPress. Para evitar a los ciberdelincuentesn y eso. Que hay gente mala. Tenemos que buscar otro modo.
Sigue leyendo.
Igual no quieres insertar tablas, pero si has hecho nichos de amazon, pues a lo mejor quieres insertar un shortcode para mostrar tus bonitas tablas. O para cualquier otra causa. El objetivo es encontrar la solución.
En Ninja tables, el shortcode es algo así: [ninja_tables id="297"]
Lo que queremos modificar en este caso, es el número 297. En otros plugins, será una cadena de texto que identificará a cada elemento. Funciona igual.
Vas a necesitar ACF (he leído que también vale Metabox) y 5 minutos de tu vida.
[lwptoc]
Lo primero que vas a tener que hacer es crear un elemento de tipo texto en ACF.
Una vez que lo tengas, acuérdate que se muestre en el tipo post o página.
Lo que vamos a utilizar a continuación es el Field Name, que es lo que identifica a la variable.
Mejor si está en minúsculas.
Ahora te aparecerá este campo de ACF en cada post/página y deberás setearlo.
Dentro del editor de Oxygen, vamos a añadir un elemento Code Block.
Dentro de la parte de PHP, vamos a añadir el siguiente código.
<?php
$tablenumber = get_field('tablenumber');
if($tablenumber) {
echo do_shortcode('[ninja_tables id="'.$tablenumber.'"]');
}
?>
$tablenumber corresponde al nombre de la variable que declaramos. Le asignamos con la función get_field el campo de Field Name de ACF. En este caso, tablenumber.
Comprobamos si existe por precaución con un condicional if.
Y mediante un echo, invocamos al shortcode pasándole el formato del shortcode más la variable tablenumber en este caso.
Recuerda que en esta ocasión, lo que quiero ir cambiando según cada página es el número del final del shortcode que identifica a una tabla en específico.
Listo. Ya puedes insertar tus shortcodes de manera dinámica cambiando solo el número en cada página.
Automatiza y vencerás 😁
No hay comentarios