Elimine el código abreviado, mantenga el contenido en el medio

1 minuto de lectura

avatar de usuario
krizajb

La idea detrás de esta pregunta radica en obtener un extracto de las publicaciones creadas con avada, pero no puedo eliminar los códigos abreviados del contenido de la publicación para mostrar el extracto de la publicación.

Aquí hay un ejemplo de mi publicación (usando avada):

[fullwidth background_color="" background_image="" class="" id=""]
[one_full last="yes" spacing="yes" class="" id=""][fusion_text]
Content text ...   
[/fusion_text][/one_full][/fullwidth]`

El valor por defecto the_excerpt(); no funciona debido a los códigos cortos. get_content() devuelve el contenido completo de la publicación, incluidos los códigos abreviados. Usando strip_shortcodes() también elimina el contenido entre los códigos cortos.

Entonces, ¿mi plan sería eliminar los códigos cortos usando un patrón? y recorte el mensaje para imitar la funcionalidad del extracto. PD: Este patrón no funciona.

Utilice esta expresión regular:

$excerpt = get_the_excerpt();
$excerpt = preg_replace("~(?:\[/?)[^/\]]+/?\]~s", '', $excerpt);

avatar de usuario
GerryM

Vale la pena comentar que puedes hacer lo mismo usando un editor de texto, por ejemplo Notepad++ o EditPad Pro, usando este Regex: \[/?[^/\]]+/?\]

Eso coincidirá con todos los códigos abreviados, y luego puede reemplazarlo con nada o un espacio, lo que sea.

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad