Bricks Builder es una herramienta poderosa para construir sitios web de forma visual, pero a veces necesitamos personalizar cómo se muestran los datos dinámicos. En este artículo, aprenderás a crear un filtro personalizado llamado strip: que te permitirá modificar las etiquetas dinámicas eliminando texto específico. Este enfoque es útil para limpiar títulos, nombres de categorías u otros valores antes de mostrarlos en tu sitio.

¿Qué son las Etiquetas Dinámicas en Bricks?

Las etiquetas dinámicas en Bricks permiten mostrar contenido dinámico en tus plantillas, como:

  • Títulos de entradas
  • Nombres de categorías o etiquetas
  • Campos personalizados
  • Metadatos

Por ejemplo, puedes usar {post_title} para mostrar el título de una entrada o {term_name} para mostrar el nombre de una categoría. Sin embargo, a veces necesitamos modificar estos valores antes de que se muestren . Aquí es donde entran en juego los filtros personalizados .

Creando un Filtro Personalizado: Ejemplo Práctico

Vamos a crear un filtro llamado strip: que elimina texto específico de cualquier etiqueta dinámica. Este filtro será útil si necesitas «limpiar» ciertas palabras o frases de tus datos.

1. Código del Filtro

Aquí está el código completo del filtro. Puedes agregarlo al archivo functions.php de tu tema hijo o a un plugin personalizado.

<?php
/**
 * Modifica los valores dinámicos de las etiquetas en Bricks.
 * 
 * Este filtro permite eliminar texto específico de las etiquetas dinámicas
 * utilizando el prefijo 'strip:' seguido de texto entre comillas simples.
 * Por ejemplo, si el valor original es "Receta de Pizza Casera" y se especifica
 * Cómo Crear Filtros Personalizados para Etiquetas Dinámicas en Bricks Builder, el resultado será "Pizza Casera".
 * 
 * @param string $value El valor original de la etiqueta dinámica.
 * @param string $tag La etiqueta dinámica (ej. 'post_title', 'term_name').
 * @param int $post_id El ID de la publicación o término asociado.
 * @param array $filters Los filtros aplicados a la etiqueta dinámica.
 * @param string $context El contexto de uso de la etiqueta (ej. 'text').
 * 
 * @return string El valor modificado después de aplicar el filtro 'strip:', o el valor original si no se aplica ningún cambio.
 * 
 * @since 1.0
 */
add_filter( 'bricks/dynamic_data/format_value', function( $value, $tag, $post_id, $filters, $context = 'text' ) {
   // Validamos que el tag sea 'post_title' y que el contexto sea 'text'
    if ( $tag !== 'post_title' || $context !== 'text' ) {
        return $value; // Si no cumple las condiciones, devolvemos el valor original sin modificar.
    }

    // Verificamos si $filters['meta_key'] existe y comienza con "strip:"
    if ( isset( $filters['meta_key'] ) && strpos( $filters['meta_key'], 'strip:' ) === 0 ) {
        // Extraemos el texto entre comillas simples después de "strip:"
        $pattern = "/^strip:'([^']+)'/"; // Expresión regular para capturar texto entre comillas simples
        if ( preg_match( $pattern, $filters['meta_key'], $matches ) ) {
            $to_delete = $matches[1]; // Texto a eliminar

            // Si hay algo que eliminar, procedemos a quitarlo del valor original
            if ( $to_delete ) {
                $value = str_replace( $to_delete, '', $value ); // Eliminamos el texto especificado.
            }
        }
    }

    // Devolvemos el valor modificado (o el valor original si no se aplicaron cambios)
    return $value;
}, 20, 5 );

Cómo Usar el Filtro strip:

El filtro strip: es muy versátil y puede usarse con cualquier etiqueta dinámica que devuelva un texto. A continuación, te muestro un ejemplo práctico.

Ejemplo: Limpiar un título

Supongamos que tienes una entrada cuyo título es "Receta de Pizza Casera". Quieres eliminar la palabra "Receta de" antes de mostrar el título.

En tu plantilla Bricks, usa la siguiente etiqueta dinámica:

{post_title:strip:'Receta de'}

Resultado:

  • Valor original: "Receta de Pizza Casera"
  • Resultado final: "Pizza Casera"

Beneficios de Usar Filtros Personalizados

  • Flexibilidad: Puedes adaptar las etiquetas dinámicas para diferentes secciones de tu sitio sin modificar los datos originales.
  • Personalización avanzada: Control total sobre cómo se muestran los datos dinámicos.
  • Sin afectar la base de datos: Los cambios solo ocurren en el frontend, dejando intactos los valores originales.

Conclusión

Los filtros personalizados son una herramienta poderosa para extender la funcionalidad de Bricks Builder. Con el filtro strip: que hemos creado, ahora puedes eliminar texto específico de la etiqueta dinámica post_title. Esto te permitirá personalizar aún más cómo se muestran tus datos en el frontend.

Recursos Adicionales