¿Cómo puedo configurar un orden personalizado con esta función?

2

Tengo una muestra:

CÓDIGO PHP:

 <ul class="categories-list">
        <?php wp_list_categories('title_li='); ?>
 </ul>

Este código muestra la lista de categorías ordenada por nombre.

Lo que quiero hacer es tener un pedido personalizado ... no por nombre ni por id.

Por ejemplo, este orden:

   1. Category with ID 5:

   2. Category with ID 3:

   3. Category with ID 9:

¿Cómo puedo hacer esto usando la función anterior?

    
pregunta Cristi 28.03.2017 - 12:29

3 respuestas

3

Deberá agregar el término meta a sus categorías. En este metacampo, almacenará la cadena o el número que desea usar como base para su pedido personalizado ( tutorial ). Supongamos que ha generado un metacampo llamado my_cat_meta que contiene enteros que dicen en qué orden desea que se muestren.

Ahora puedes pasar este metakey a wp_list_categories . En última instancia, esta función se basa en get_terms , que explica qué argumentos puede tomar la función. Puede limitar la búsqueda a los términos que tienen el metakey definido y el orden de acuerdo con ese metakey. Esto equivale a:

$args = array (
  'title_li' -> '',
  'meta_key' -> 'my_cat_meta',
  'orderby'-> 'meta_key');
wp_list_categories ($args);

Una forma ligeramente intrincada sería usar el campo 'descripción' que es un campo predeterminado en las categorías WP. Muchos temas no lo muestran, por lo que podría usarlo para almacenar metadatos. En ese caso, podría omitir la construcción de su propio campo de metadatos y utilizar:

$args = array (
  'title_li' -> '',
  'orderby'-> 'description');
wp_list_categories ($args);
    
respondido por el cjbj 28.03.2017 - 13:25
1

Puedes usar la función shuffle () para obtener las categorías en orden aleatorio. Así,

$categories = get_categories();
shuffle( $categories );

¡Espero que esto te funcione!

    
respondido por el Nehal Shah 28.03.2017 - 13:10
1

wp_list_categories (); proporcione un resultado con formato,

Para mostrar elementos para un diseño personalizado, puede usar las funciones get_categories () o get_terms ().

    
respondido por el Harry 28.03.2017 - 13:12

Lea otras preguntas en las etiquetas