Woocommerce únicament té un camp per a text a les categories. Per a SEO pot ser interessant comptar amb 2 camps de text. Un de més breu, per al principi del contingut de la categoria, i altre més llarg baix del tot amb més detalls sobre el producte.
Per aconseguir això, primer creem un camp “Descripción corta”. Afegim aquest codi al functions.php:
// Añadir campo "Descripción Corta" con editor WYSIWYG
add_action( 'product_cat_add_form_fields', 'add_short_description_wysiwyg_field', 10, 2 );
add_action( 'product_cat_edit_form_fields', 'edit_short_description_wysiwyg_field', 10, 2 );
function add_short_description_wysiwyg_field() {
?>
<div class="form-field">
<label for="short_description"><?php _e('Descripción Corta', 'woocommerce'); ?></label>
<?php
$settings = array(
'textarea_name' => 'short_description',
'quicktags' => true,
'tinymce' => true,
'media_buttons' => true,
);
wp_editor( '', 'short_description', $settings );
?>
</div>
<?php
}
function edit_short_description_wysiwyg_field( $term ) {
$short_description = get_term_meta( $term->term_id, 'short_description', true );
?>
<tr class="form-field">
<th scope="row" valign="top">
<label for="short_description"><?php _e('Descripción Corta', 'woocommerce'); ?></label>
</th>
<td>
<?php
$settings = array(
'textarea_name' => 'short_description',
'quicktags' => true,
'tinymce' => true,
'media_buttons' => true,
);
wp_editor( htmlspecialchars_decode( $short_description ), 'short_description', $settings );
?>
</td>
</tr>
<?php
}
// Guardar el valor del campo "Descripción Corta" con HTML permitido
add_action( 'created_product_cat', 'save_short_description_field', 10, 2 );
add_action( 'edited_product_cat', 'save_short_description_field', 10, 2 );
function save_short_description_field( $term_id ) {
if ( isset( $_POST['short_description'] ) ) {
// Guardar el contenido con HTML permitido
update_term_meta( $term_id, 'short_description', wp_kses_post( $_POST['short_description'] ) );
}
}
I després podem mostrar aquest camp creant un “shortcode” i mostrant-lo on vulguem, com per exemple a les plantilles d’Elementor. Copiem aquest codi també al functions.php per a crear el Shortcode:
// Crear un shortcode para mostrar la Descripción Corta de una categoría con HTML
function shortcode_descripcion_corta_categoria() {
if (is_product_category()) {
$category = get_queried_object();
$short_description = get_term_meta( $category->term_id, 'short_description', true );
if ( !empty( $short_description ) ) {
// Aquí usamos wp_kses_post para permitir HTML seguro
return '<div class="category-short-description">' . wp_kses_post( $short_description ) . '</div>';
}
}
return '';
}
add_shortcode('descripcion_corta_categoria', 'shortcode_descripcion_corta_categoria');
El shortcode que haurem d’utilitzar és:
[descripcion_corta_categoria]