Volver

Class Name en WordPress.

Con el fin de darle orden y tener más facilidad de reutilizar el código, y tratando de implementar la guía GD1-Clase de Bloque y Variantes de Color para WordPress, se crea la presente para formalizar dicho concepto.

 

Uno de los factores que hace perder más tiempo y que produce muchos errores innecesarios, es la discrepancia entre los nombres de clases CSS y sus elementos, y entre el nombre de la clase CSS y los campos personalizados, por tal motivo se adoptarán las siguientes prácticas:

 

1. En cada componente se crearán una variable llamada $class_name, el cual contendrá el nombre del componente.

$class_name = 'banner-full-widht';

 

2. El nombre de los campos personalizados serán iguales al nombre que se usa en BEM. Es decir, los nombres compuestos en los campos personalizados, que anteriormente se unían con raya baja “_”, ahora se nombraran con raya media (como se hace en BEM).

 

3. Para obtener el campo personalizado se usará directamente la variable $class_name:

* Ejemplo 1:

$class_name = 'table-fields';

 

* Ejemplo 2:

$item_name = $class_name . '-item';

$card_name = $class_name . '-card';

También se usará para la construcción de otras variables como $item_name o $card_name.

 

4. Para obtener los subcampos se usará la clase $class_name, concadenando(en PHP se concatena con “.”) con su complemento:

<?php
global $tax_types_posts;
$post_id = $post->ID;
$post_type = get_post_type();
$taxonomy = $tax_types_posts[$post_type];
$type_content = get_the_terms($post_id, $taxonomy);
$type_content_name = $type_content[0]->name;
$category = get_the_category()[0];
?>

5. Para las clases de CSS, en vez de escribir la clase directamente, se imprimirá la variable $class_name.

*Ejemplo:

if ($downloads) :
    while (have_rows($class_name)) : the_row(); ?>
    <?php if(get_sub_field($item_name)): ?>
        <section class="<?php echo $class_name ?> p-0 reset-transition mt-5">
            <h2 class="<?php echo $class_name ?>__title">
                Anexos
            </h2>
            <ul class="<?php echo $item_name ?> py-1 px-3">
                <?php
                while (have_rows($item_name)) : the_row();
                    get_template_part('cards/' . $item_name, NULL, [
                        'item_name' => $item_name,
                    ]);
                endwhile; ?>
            </ul>
        </section>
    <?php endif ?>
    <?php endwhile; ?>
<?php endif ?>
Avatar

Autor

Elan Francisco P. Asprilla
Desarrollador Frontend

Artículos relacionados

Mosaico de Íconos (Palmas)

Este componente crea un grid de iconos con su...

Máquinas de estado en React con XState

Las máquinas de estado son una forma poderosa de...

Grid Icons (HIDROTECNO)

Este componente “Grid Icons” se...

Formulario de contacto (Hidrotecno)

¿Por qué lo hacemos a mano y tan difícil, si...