Añadir iconos de Font-Awesome al widget de categorías programáticamente

1 ene 2014, 22:22:10
Vistas: 14.2K
Votos: 1

Utilizo el widget de Categorías en mi barra lateral y me gustaría mostrar un icono de Font Awesome junto a cada categoría listada en el widget. Por ahora, el icono sería el mismo para todas las categorías, pero en el futuro me gustaría asignar un icono único a cada categoría.

Quiero modificar el widget de Categorías usando código en mi archivo functions.php para añadir el icono insertando marcado como <i class="fa fa-chevron-right"></i> dentro del elemento anchor/enlace de la categoría después del título de la categoría. Podría hacer esto mediante CSS, pero perdería la capacidad de determinar programáticamente qué icono mostrar, junto con la flexibilidad para otras mejoras/cambios que pueda querer hacer en el futuro.


Básicamente, quiero lograr este efecto:

Cat 1          >

Cat 2          >

Cat 3          >

(El símbolo '>' representa la ubicación del icono relativa al título de la categoría)


Tengo Font Awesome cargado en el archivo functions.php usando el hook wp_enqueue_scripts como se muestra a continuación, y carga y muestra los iconos perfectamente. Nota que no uso ningún plugin de Font Awesome construido para WordPress.

/* Encolar Scripts
-----------------------------------------------------------------*/
add_action( 'wp_enqueue_scripts', 'essentials_enqueue_scripts' );
function essentials_enqueue_scripts() {
    /* jQuery */
    wp_enqueue_script('jquery');
    wp_enqueue_script( 'jquery_ui', "http" . ($_SERVER['SERVER_PORT'] == 443 ? "s" : "") . "://ajax.googleapis.com/ajax/libs/jqueryui/2.0.3/jquery-ui.min.js", false, null);
    wp_enqueue_script( 'waypoints', get_template_directory_uri() . '/js/waypoints.min.js');
    wp_enqueue_script( 'essentials_main', get_template_directory_uri() . '/js/essentials_main.js', array(), '1.0.0', true );
    wp_enqueue_script( 'essentials_show_stuff', get_template_directory_uri() . '/js/essentials_show_stuff.js', array(), '1.0.0', true );
    /* Google Fonts */
    wp_register_style('GoogleFonts','http://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700,800|Bad+Script');
    wp_enqueue_style( 'GoogleFonts');
    /* Font Awesome Fonts */
    wp_register_style('Font Awesome','//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css');
    wp_enqueue_style( 'Font Awesome'); 
}

A pesar de mis mejores esfuerzos de investigación, no pude encontrar una solución para modificar el widget de categorías.

16
Comentarios

Por favor, aclara tu pregunta para explicar cómo es específico de WordPress, en lugar de ser simplemente CSS. Además, por favor edita tu pregunta para incluir lo que has hecho/probado hasta ahora. ¿Cómo estás incluyendo/encolando la fuente FontAwesome?

Chip Bennett Chip Bennett
4 ene 2014 16:05:42

Edición añadida para responder a tus preguntas.

MrJustin MrJustin
6 ene 2014 22:52:00

"Esto es específico de WordPress debido a que quiero personalizar las categorías de WordPress mediante el archivo FUNCTIONS.PHP" - dado que la solución final sigue siendo completamente CSS, la pregunta aún no es específica de WordPress. Simplemente ocurre en el contexto de WordPress. Tu limitación de querer una función para insertar en functions.php, que excluye las respuestas más plausibles, también hace que esta pregunta sea demasiado localizada. Quizás si editas la pregunta para centrarte en cómo encolar CSS personalizado, sería apropiada para WPSE?

Chip Bennett Chip Bennett
6 ene 2014 23:04:04

Nuevamente, no quiero una solución CSS. Mi limitación también amplía las posibilidades futuras para esta necesidad. Me gustan los íconos, y otros pueden querer íconos. En el futuro, podría crear una página de opciones para mí mismo para agregar íconos ESPECÍFICOS, no solo un único ícono. No tengo absolutamente ninguna intención de usar CSS en esto, no quería un background-image, y sí elogié a alguien por hacer el :after {content} pero nuevamente, no es lo que estoy buscando. Esto es ESPECÍFICO para WordPress, sé cómo hacerlo en CSS y cómo hacerlo en HTML. No sabía cómo hacerlo en WordPress editando el Widget mediante una función personalizada.

MrJustin MrJustin
6 ene 2014 23:15:03

El atributo content de CSS no es una imagen de fondo, es contenido. Y una solución CSS es la mejor forma de implementarlo, incluso si quieres exponer opciones para el usuario final. Lo que intento hacerte ver es que tus restricciones innecesarias y arbitrarias están haciendo el problema innecesariamente difícil.

Chip Bennett Chip Bennett
7 ene 2014 02:53:27

Como lo menciona @Chip, tu pregunta tal como está formulada trata estrictamente sobre una implementación CSS - estás claramente preguntando cómo mostrar un único carácter de una fuente basada en íconos. La forma en que esto se logra es colocando ese carácter en el HTML y aplicando la fuente al carácter (o a un elemento contenedor) usando CSS. Ninguna parte de este proceso tiene que ver con WordPress. En ningún lugar de tu pregunta indicas que deseas agregar este carácter modificando la salida de WordPress. Hacerlo es excesivo y muy probablemente innecesario si tu pregunta es precisa.

bosco bosco
7 ene 2014 04:38:47

Ampliando mi comentario anterior, la respuesta de birgire que has aceptado a continuación es una implementación CSS - la única diferencia es que él está añadiendo el elemento con estilo CSS usando PHP y expresiones regulares en lugar de simplemente insertarlo directamente en el marcado de tu plantilla. Esto incurre en una sobrecarga de recursos para cargar y ejecutar el PHP que no tiene absolutamente ninguna necesidad. Por favor, reestructura tu pregunta para implicar que deseas añadir este carácter de manera programática y del lado del servidor si ese es realmente el caso. Ayudaría mucho si también indicaras por qué tienes estos requisitos.

bosco bosco
7 ene 2014 05:04:20

No busco alienarte ni nada por el estilo, solo intento que tu pregunta esté mejor definida y cumpla con los estándares de nuestra comunidad. Deberías eliminar la parte sobre "Realmente no quiero reinventar la rueda aquí, así que si pudiera simplemente agregar algo al archivo functions.php de mi tema sería genial" y añadir información sobre lo que has intentado hasta ahora. Tal como está, tu pregunta claramente está pidiendo a nuestra comunidad que te entregue código sin mostrar esfuerzo por tu parte, lo cual va en contra de nuestros estándares. Por favor, consulta [ask] para más información sobre nuestros estándares.

bosco bosco
7 ene 2014 05:13:03

Bien, si esta edición que acabo de hacer no es suficiente... entonces puedes eliminar esta pregunta. Prefiero que nadie pierda la reputación ganada a través de esto. Si pudieras cerrarla, podría ser la mejor alternativa.

MrJustin MrJustin
7 ene 2014 16:04:24

"Realmente no deseo tener que poner 25 líneas de código en mi CSS para mostrar los diferentes iconos." - el verdadero problema con esto es que hace que tu pregunta sea demasiado localizada, porque restringes la mejor y más obvia solución: CSS. Simplemente no entiendo por qué 25 líneas de CSS son menos deseables que múltiples filtros y 50 líneas de reemplazo de cadenas en PHP.

Chip Bennett Chip Bennett
7 ene 2014 16:54:57

Bueno, tal vez la solución con CSS sea obvia para ti. No lo es para mí, lo estoy viendo desde una escala diferente, así que mi interpretación de los pasos para llegar ahí va a variar. Entonces, si esto no estuviera localizado, no caería bajo WordPress Specific. Tengo un problema que me afecta a mí, puede que no te afecte a ti, pero no todos los problemas lo hacen. Vine aquí buscando una solución en WordPress para algo, y la obtuve. No sé por qué seguimos discutiendo sobre algo que ya ha sido respondido. Estoy satisfecho con la respuesta... déjalo así.

MrJustin MrJustin
7 ene 2014 17:33:07

"No sé por qué seguimos discutiendo sobre algo que ya ha sido respondido." - porque los sitios de Stack Exchange no son foros de soporte, sino sitios de Preguntas y Respuestas destinados a construir una base de conocimiento para aplicación general/universal. Tu limitación arbitraria hace que la pregunta no sea universalmente útil, por eso la categoriza como demasiado localizada. Y aunque eres libre de aceptar la respuesta que mejor se adapte a tus necesidades personales, la respuesta aceptada es, francamente, terrible para la gran mayoría de personas que necesitan incorporar fuentes de iconos.

Chip Bennett Chip Bennett
7 ene 2014 18:35:20

Entonces márcalo como inapropiado, y veremos qué sucede. No voy a pelear por algo. Intenté eliminar mi pregunta y no me deja, así que dejemos que los moderadores decidan la acción apropiada a partir de aquí.

MrJustin MrJustin
7 ene 2014 18:54:46

@MrJustin, creo que tus ediciones no solo han llevado tu pregunta a estar dentro del tema, sino que también han proporcionado las restricciones necesarias que hicieron que seleccionar una implementación no-CSS fuera una elección lógica. He cambiado mi voto negativo a uno positivo. ¡Aprecio mucho tu paciencia a través de todo esto, y tu voluntad de revisar tu pregunta para el beneficio de nuestra comunidad!

bosco bosco
9 ene 2014 01:55:30

He proporcionado una revisión final para destilar la pregunta a su forma más básica y directa, y de una manera que espero evite que futuros lectores que simplemente buscan añadir un icono implementen la respuesta aceptada más compleja que se encuentra abajo.

bosco bosco
9 ene 2014 03:08:00

@bosco Aprecio tu revisión, y aunque no la acepté, la encuentro más que satisfactoria. Agradezco el voto positivo. Realmente no tenía intención, y no me gusta discutir. Me alegra que hayamos podido llegar a una solución razonable. Haré un mejor esfuerzo al formular mis preguntas originales para describir exactamente lo que estoy intentando hacer. Una vez más, muchas gracias.

MrJustin MrJustin
9 ene 2014 03:32:13
Mostrar los 11 comentarios restantes
Todas las respuestas a la pregunta 4
12

Suposiciones:

No explicas cómo deseas instalar el paquete de Font Awesome, así que por el momento asumo que estás usando el plugin Font Awesome Icons.

Has escrito:

Antes de que alguien diga que use una imagen de fondo, no quiero hacer eso. Prefiero que sea físico.

así que asumo que deseas usar la etiqueta <i> directamente, por ejemplo:

<i class="fa icon-caret-right"></i>

después de cada enlace de categoría en la lista de categorías del widget.

Idea:

Puedes usar el filtro wp_list_categories para modificar la salida de la lista de categorías del widget.

Ejemplo:

Aquí tienes un ejemplo sencillo de cómo inyectarlo en la lista de categorías a través del filtro wp_list_categories:

/**
 * Inyecta la etiqueta Font Awesome <i> después de cada enlace de categoría en el widget
 *
 * @param string $output
 * @return string $output
 */

 function custom_wp_list_categories( $output )
 {  
     remove_filter( current_filter(), __FUNCTION__ ); 
     return str_ireplace( '</li>', '<i class="fa icon-caret-right"></i></li>', $output);
 }

 add_action( 'widgets_init', function(){
     add_filter( 'wp_list_categories', 'custom_wp_list_categories' );
 });

Esto te dará una salida similar a esta:

lista de categorías

4 ene 2014 16:03:57
Comentarios

Excelente fragmento de código, lo revisaré cuando regrese en un rato. Publicaré los resultados.

MrJustin MrJustin
5 ene 2014 01:36:13

solo recuerda ajustar el nombre de la clase según tus necesidades ;-) Yo usé icon-caret-right porque esa es la regla de nomenclatura de clases según el plugin. En otros casos podría ser fa-caret-right.

birgire birgire
5 ene 2014 01:42:33

return str_ireplace( '</li>', '<i class="fa fa-chevron-right"></i></li>', $output); funcionó, pero return str_ireplace( '</a></li>', '<i class="fa fa-chevron-right"></i></a></li>', $output); no lo hizo.

MrJustin MrJustin
5 ene 2014 11:31:42

vale, quieres añadirlo dentro de la etiqueta <a></a>, entonces prueba esto: return preg_replace( '/<\/a>\s*<\/li>/i', ' <i class="fa fa-chevron-right"></i></a></li>', $output );

birgire birgire
5 ene 2014 14:22:45

Vale, ahora me he perdido con la nueva parte... ¿cómo funciona exactamente eso? Entiendo la última parte, pero no la primera.

MrJustin MrJustin
6 ene 2014 22:33:44

No voy a votar negativamente una solución/intento legítimo de ayudar al OP, pero en serio: usar reemplazo de cadenas PHP cuando una simple regla CSS bastaría parece ser excesivo.

Chip Bennett Chip Bennett
6 ene 2014 23:05:12

Lamento no haber sido más específico en mi 'Pregunta' original, pero esto no se limitará a algo tan pequeño como poner el icono allí. Esto se expandirá en el futuro, y CSS no cumplió con mis necesidades, por eso publiqué aquí ;).

MrJustin MrJustin
6 ene 2014 23:17:22

@MrJustin gracias por el voto, también estoy impresionado por las ingeniosas respuestas proporcionadas por los otros usuarios. pd: \s* coincide con cualquier carácter de espacio en blanco, como espacio, tabulación y nueva línea.

birgire birgire
7 ene 2014 00:53:12

@MrJustin ¿podrías ampliar tu pregunta para detallar estas "necesidades futuras" para las que CSS es insuficiente? Tal como está, tu pregunta es específicamente sobre CSS y no está vinculada a WordPress, por lo que se encuentra en terreno movedizo para ser cerrada por estar fuera de tema.

bosco bosco
7 ene 2014 04:43:14

También podría agregar que un filtro de WordPress era excesivo dado el alcance de la pregunta de MrJustin. Difícilmente creo que llevarlo hacia expresiones regulares sea una buena idea... No puedo evitar sentir que las expresiones regulares se encuentran en el polo opuesto a la simplicidad de una implementación CSS estática. Temo por cualquier futuro usuario de WPSE que venga aquí buscando mostrar un solo carácter de una fuente de íconos y termine con un trozo de expresiones regulares en su backend. ¡Tengan piedad de los n00bs!

bosco bosco
7 ene 2014 04:47:57

también se podría usar: return str_ireplace( '</a>', ' <i class="fa fa-chevron-right"></i></a>', $output);

birgire birgire
7 ene 2014 07:40:53

@birgire, ¡agradezco ese aporte!

bosco bosco
9 ene 2014 01:48:11
Mostrar los 7 comentarios restantes
3

Esta respuesta contiene una solución CSS bastante sencilla.

Básicamente, agregarías lo siguiente a tu hoja de estilos:

.cat-item cat-item-7 {
     list-style-image: url('mi-epico-icono-noticias');
}


cat-item cat-item-11 {
     list-style-image: url('mi-epico-icono-jquery');
}

etcétera

Sí, no es una solución muy dinámica, pero supongo que tus categorías no van a cambiar con frecuencia.

4 ene 2014 14:49:26
Comentarios

Que la respuesta sea CSS puro es indicativo de que la pregunta subyacente está fuera de tema para WPSE. Dicho esto: creo que tus selectores CSS no tienen la sintaxis adecuada. Deberías usar .cat-item.cat-item-7 - o, dado que se pretende usar la misma imagen de fuente de icono para todos los elementos de la lista, simplemente usa .cat-item. Además: un icono de fuente usaría el atributo content y apuntaría al pseudo-clase :after, como: .cat-item:after { content: '\f18d'; }.

Chip Bennett Chip Bennett
4 ene 2014 16:25:33

Puntos válidos. Sí, cometí un error en la sintaxis. ¿Estamos seguros de que OP quiere la misma imagen, o una diferente por categoría? (Así es como lo entendí). Solo quería proponer la solución más fácil, aunque eso saca la pregunta/respuesta fuera de tema.

JMB JMB
4 ene 2014 16:32:51

No es la solución que buscaba, ya que había dicho que no quería usar un fondo y que quería el icono después del texto. Si bien puede no ser un fondo, sigue siendo una imagen, y no Font Awesome. Buena solución, pero no la solución para mí.

MrJustin MrJustin
5 ene 2014 01:35:53
6

Suponiendo que quieras usar el icono fa-chevron-right, simplemente necesitas apuntar al elemento de lista mediante CSS. Usa la pseudo-clase :after:

.list-item:after {
    font-family: FontAwesome; // o como sea que esté registrada la familia de FontAwesome
    content: '\f054';
}

Editar

Para darte una idea de cómo podrías pasar CSS dinámico (que puede adaptarse fácilmente a una opción de Plugin personalizada) mediante un callback, aquí tienes un ejemplo:

(Nota: "plugin" y "theme" son intercambiables a continuación).

Primero, modificaremos el CSS para apuntar específicamente a los elementos de lista dentro de un Widget. WordPress añade una clase, .widget, al contenedor del Widget. Así que puedes apuntar a eso:

.widget .list-item:after {}

O, si todo esto estará empaquetado en un Plugin que registra un Widget personalizado, entonces puedes apuntar a la clase CSS que defines en tu Widget personalizado, mediante el array $widget_ops:

$widget_ops = array( 
    'classname' => 'custom-widget-classname', 
    'description' => __( 'Descripción del Widget Personalizado', 'namespace' ) 
);

Así que puedes apuntar a ese nombre de clase personalizado:

.custom-widget-classname .list-item:after {}

O, si quieres apuntar al Widget "Categorías" principal, puedes usar la clase .widget_categories. Usaremos ese enfoque para el ejemplo.

Vamos a colocarlo dentro de un callback, enganchado a wp_head, aunque también podrías usar wp_print_styles:

function pluginslug_fontawesome_styles() {
    // El código irá aquí
}
add_action( 'wp_head', 'pluginslug_fontawesome_styles' );

Dentro, simplemente vamos a generar una hoja de estilos, con nuestra regla de arriba:

function pluginslug_fontawesome_styles() {
    ?>
<script type="text/css">
.widget_categories .list-item:after {
    font-family: FontAwesome; // o como sea que esté registrada la familia de FontAwesome
    content: '\f054';
}
</script>
    <?php
}
add_action( 'wp_head', 'pluginslug_fontawesome_styles' );

En este punto, ya has terminado. Fácil. Pero, como ya estás dentro de una función PHP, puedes hacer fácilmente que esta hoja de estilos sea dinámica, usando una variable:

function pluginslug_fontawesome_styles() {

    // Definir variable para el icono de estilo de lista
    $list_item_icon = '\f054';

    // ...snip:
    content: <?php echo $list_item_icon; ?>;

Así que ahora, es sencillo usar un valor de opción de Plugin personalizado, simplemente pasándolo a la variable:

function pluginslug_fontawesome_styles() {

    // Obtener opciones del Plugin, se asume que es un array
    $plugin_options = get_option( 'pluginslug_plugin_options' );

    // Definir variable para el icono de estilo de lista
    $list_item_icon = $plugin_options['list_item_icon'];

    // Generar hoja de estilos
    ?>
<script type="text/css">
.widget_categories .list-item:after {
    font-family: FontAwesome; // o como sea que esté registrada la familia de FontAwesome
    content: <?php echo $list_item_icon; ?>;
}
</script>
    <?php
}
add_action( 'wp_head', 'pluginslug_fontawesome_styles' );

¡Eso es todo! CSS dinámico, generando un icono real (no una imagen de fondo), obtenido de una opción de Plugin.

Y como es solo CSS, es fácilmente extensible a prácticamente cualquier selector que puedas imaginar, no limitado solo a un elemento de lista dentro de un Widget.

4 ene 2014 16:32:31
Comentarios

Opción muy buena, pero yo quería una función. :)

MrJustin MrJustin
6 ene 2014 22:42:37

Sabes que puedes envolver reglas CSS en un callback y ponerlas en cola con wp_head o wp_print_styles, ¿verdad? Pero esa parte de la implementación es una pregunta aparte y está fuera del alcance de la pregunta tal como está escrita.

Chip Bennett Chip Bennett
6 ene 2014 23:01:21

Sí, sé cómo poner en cola. Sin embargo, no quiero usar CSS. Sé que es una forma rápida y eficiente de hacerlo, y te felicito por eso... pero quizás debería haber usado las palabras "necesito una" en lugar de "quiero una" cuando se trata de la función.

MrJustin MrJustin
6 ene 2014 23:19:39

Por favor, revisa la pregunta editada. Añadí un ejemplo para mostrar cómo todo esto realmente puede manejarse mediante CSS, de forma dinámica, extensible y capaz de tener en cuenta opciones personalizadas de Plugins.

Chip Bennett Chip Bennett
7 ene 2014 03:16:16

Correcto, pero ahora, ¿qué pasa si quisiera que el 'icono' flotara hacia la derecha? En mi CSS normal lo he adjuntado a li a:after {content} e intenté: text-align: right y no hizo nada para mí. Lo que quiero decir con esto, para aclarar, es qué pasaría si quisiera que todos los iconos estuvieran a la derecha del LI con el texto a la izquierda. Digamos que el ul/li estaba configurado en 250px, el texto siempre es un enlace, pero lo tenía configurado como bloque. Luego añadí el 'icono' y quería que el icono se colocara a la derecha del li. Con el <i...></i> puedo flotarlo fácilmente.

MrJustin MrJustin
7 ene 2014 03:30:12

Para responder a esa pregunta específica: en lugar de li a:after, usa li a:before. Pero el estilo/posicionamiento de los elementos: aparte de conocer el marcado proporcionado por WordPress (incluyendo las clases CSS específicas y el marcado HTML de la lista), estas son preguntas de CSS/HTML. Curiosamente, la respuesta que marcaste como aceptada no usa nada más que CSS. (La hoja de estilos Font Awesome en cola que hace uso de la clase que añades mediante el reemplazo de cadenas usa el pseudo-clase :after y el atributo content para mostrar el icono).

Chip Bennett Chip Bennett
7 ene 2014 04:17:25
Mostrar los 1 comentarios restantes
3

Lo haría de esta manera:

// Si solo estás usando el widget en páginas específicas,
// podrías querer usar algunas condiciones apropiadas aquí
add_action('wp_enqueue_scripts', function() {
    wp_enqueue_style('font-awesome',
        '//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css');
});

function wpse_128247_font_awesome_categories($cat_name) {
    // Define tu icono deseado aquí
    $icon = ' <i class="fa fa-smile-o"></i>';

    return $cat_name.$icon;
} // function wpse_128247_font_awesome_categories

function wpse_128247_add_filter($cat_args) {
    add_filter('list_cats', 'wpse_128247_font_awesome_categories');

    // Como estamos interceptando este filtro, simplemente pasamos sus datos
    return $cat_args;
} // function wpse_128247_add_filter
add_filter('widget_categories_args', 'wpse_128247_add_filter');

function wpse_128247_remove_filter($output) {
    remove_filter('list_cats', 'wpse_128247_font_awesome_categories');

    // Como estamos interceptando este filtro, simplemente pasamos sus datos
    return $output;
} // function wpse_128247_remove_filter
add_filter('wp_list_categories', 'wpse_128247_remove_filter');

Primero, encolamos los estilos de Font Awesome. Luego, interceptamos algunos filtros para agregar/eliminar nuestro propio filtro para el listado de categorías. Eso es todo.


// EDITADO:
Sin los comentarios, adaptado al hecho de que ya tienes Font Awesome encolado, usando closures y dejando que el filtro se elimine a sí mismo, el código queda así:

function wpse_128247_font_awesome_categories($cat_name) {
    remove_filter(current_filter(), __FUNCTION__);
    return $cat_name.' <i class="fa fa-smile-o"></i>';
} // function wpse_128247_font_awesome_categories

function wpse_128247_add_filter($cat_args) {
    add_filter('list_cats', 'wpse_128247_font_awesome_categories');
    return $cat_args;
} // function wpse_128247_add_filter
add_filter('widget_categories_args', 'wpse_128247_add_filter');

No llamaría a eso excesivo. Pero sí, mi código consta de más líneas que la solución actual de birgire.

4 ene 2014 16:13:38
Comentarios

Tu solución no era mala, pero era excesiva en comparación con la de birgire. Ya tengo Font-Awesome encolado, lo siento, no lo especifiqué.

MrJustin MrJustin
6 ene 2014 22:41:00

Sí, ese código no es excesivo, estoy de acuerdo con eso. Probablemente solo parecía más con las 4 funciones en lugar de 2, y la cantidad de comentarios. Aprecio los comentarios, no los estoy menospreciando. Solo parecía mucho más :).

MrJustin MrJustin
7 ene 2014 03:26:38

Como estás usando remove_filter en la función que añade el icono, solo se ejecutará una vez. Esto significa que un icono solo se añadirá al primer elemento de la lista widget_categories.

WPExplorer WPExplorer
12 may 2020 09:49:37