WordPress reemplaza el shortcode antes de que se inicialice el plugin.
Uso WordPress con Cornerstone y Essential Grid.
Quiero configurar una plantilla de página que tenga un URL-parámetro, por ejemplo: localhost/info/template/?id=1
En esta página tengo una cuadrícula esencial.
Cuando id = 1
quiero mostrar la cuadrícula esencial mygrid1
, cuando id = 2
quiero cargar la cuadrícula mygrid2
.
Intenté reemplazar el shortcode con
js
document.getElementById("myGrid").innerHTML = mynewGrid
Pero en este punto, la cuadrícula ya está inicializada y es demasiado tarde. También reemplazar el shortcode en functions.php (tema hijo) es demasiado tarde.
Así que hice un nuevo plugin. Tenía la intención de que mi nuevo plugin se cargue antes de que se cargue el plugin de cuadrícula esencial.
php
function createDynamicContent(string $content)
{
if (is_page('1209')) {
Da el procesamiento, etc...
Carga el nuevo shortcode desde la base de datos, basado en el URL-parámetro
luego reemplaza el shortcode ficticio con el nuevo shortcode real usando $content
el shortcode ficticio es mydummy
el $mynewgrid
es la cadena para la nueva cuadrícula [ess_grid alias="berge"][/ess_grid]
php
$newContent = str_replace("mydummy", $mynewgrid, $content);
$content = $newContent;
return $content;
}
Añadí esta función:
php
add_filter('the_content', 'createDynamicContent', 10);
También intenté
php
add_action( 'the_content', 'createDynamicContent', 100, 3);
Cuando establezco el parámetro de prioridad en 100
, el ficticio se reemplaza en la fuente pero la cuadrícula no se carga.
Cuando establezco el parámetro de prioridad en 1
, la página se rompe.
¿Tengo alguna posibilidad de reemplazar dinámicamente el shortcode?
davy.ai
Solución para configurar una plantilla de página con parámetro de URL y shortcode dinámico en WordPress
Para configurar una plantilla de página con un parámetro de URL y un shortcode dinámico en WordPress, puede seguir estos pasos:
Esta función cargará dinámicamente el shortcode según el parámetro de URL y lo reemplazará en el contenido.
Agregue el filtro
the_content
al archivo de su plugin con una prioridad de100
para que se cargue antes del plugin Essential Grid.[mydummy]
donde desee cargar Essential Grid.Acceda a la página con el parámetro de URL
/info/template/?id=1
para cargar Essential Grid con el aliasmygrid1
, o/info/template/?id=2
para cargar Essential Grid con el aliasmygrid2
.Con estos pasos, puede cargar dinámicamente Essential Grid según el parámetro de URL en WordPress.