Un usuario preguntó 👇
Hola,
El uso del argumento ‘orderby’ => ‘name’ no funciona en wp_dropdown_categories, muestra el comando drop’n drop.
(@fmixell)
Hace 1 año, 5 meses
Hola @dobled,
Cuando usa wp_dropdown_categories, ¿también ingresa el nombre de la taxonomía?
Tus argumentos deberían verse así:
$args = array(
'taxonomy' => 'categories', // Whatever taxonomy you're looking for
'order_by' => 'name', // Without taxomony above this will return empty
);
wp_dropdown_categories( $args );
¡Avísame si esto te aclara!
Salud,
Freddie
(@dobled)
Hace 1 año, 5 meses
Sí, es una taxonomía personalizada. Estos son los argumentos que utilicé:
$servicios_args = array(
'show_option_all' => '',
'show_option_none' => '',
'option_none_value' => '-1',
'orderby' => 'name',
'order' => 'ASC',
'show_count' => 0,
'hide_empty' => 0,
'child_of' => 0,
'exclude' => '',
'include' => '',
'echo' => 1,
'selected' => get_query_var($values['servicios_name']),
'hierarchical' => 0,
'name' => $values['servicios_name'],
'id' => 'servicios_select',
'class' => 'postform',
'depth' => 0,
'tab_index' => 0,
'taxonomy' => 'servicio',
'hide_if_empty' => false,
'value_field' => 'slug',
);
(@fmixell)
Hace 1 año, 5 meses
@dobled
Recomendaría probar el order' => 'ASC',
artículo y vea si eso ayuda. O podrías moverlo arriba orderby
porque creo que estos podrían ser contradictorios.
Déjeme saber si esto ayuda.
– Freddie
Esta respuesta fue modificada hace 1 año, 5 meses.
(@dobled)
Hace 1 año, 5 meses
Elimine el ‘orden’ y coloque el ‘orderby’ como el primer elemento de la matriz. Sigue igual 🙁
(@fmixell)
Hace 1 año, 5 meses
De acuerdo, he analizado problemas anteriores en Github y parece que tiene razón en que no puede usar el comando a menos que filtre para deshabilitar el comando de término personalizado. Este término es ‘term_clauses’ y puede eliminarse pasando este código cuando sea necesario.
Esto debe agregarse a sus temas functions.php y si tiene un tema hijo, debe colocarlo allí para que las actualizaciones futuras del tema no eliminen este código.
// 42 could be swapped out for any page id or title
// ex: is_page( 'Contact' )
// This will check that you're not in the admin and you're on the right page.
if ( ! is_admin() && is_page( 42 ) ) {
remove_filter( 'terms_clauses', array( $this, 'yikes_alter_tax_order' ), 10 );
}
Esta respuesta fue modificada hace 1 año, 5 meses. Esta respuesta fue modificada hace 1 año, 5 meses. Razón: error tipográfico
(@dobled)
Hace 1 año, 5 meses
Algunas páginas utilizan este botón desplegable. Creo que sería mejor quitar el filtro, llamar al menú desplegable y reemplazar el filtro nuevamente. ¿Lata?
(@fmixell)
Hace 1 año, 5 meses
Sí, si está haciendo esto en su archivo de plantilla temática, puede colocar la función de eliminar filtro justo encima de donde está usando este menú desplegable y debería funcionar. Dime que te parece. Sin embargo, es difícil decir que no vea su código, así que avíseme si funciona.
(@fmixell)
Hace 1 año, 5 meses
remove_filter( 'terms_clauses', array( $this, 'yikes_alter_tax_order' ), 10 );
$servicios_args = array(
'show_option_all' => '',
'show_option_none' => '',
'option_none_value' => '-1',
'orderby' => 'name',
'order' => 'ASC',
'show_count' => 0,
'hide_empty' => 0,
'child_of' => 0,
'exclude' => '',
'include' => '',
'echo' => 1,
'selected' => get_query_var($values['servicios_name']),
'hierarchical' => 0,
'name' => $values['servicios_name'],
'id' => 'servicios_select',
'class' => 'postform',
'depth' => 0,
'tab_index' => 0,
'taxonomy' => 'servicio',
'hide_if_empty' => false,
'value_field' => 'slug',
);
wp_dropdown_categories( $servicios_args );
(@dobled)
Hace 1 año, 5 meses
Esto no funciona: no puedo acceder a este método con $ fuera de clase.
El plugin no coloca inmediatamente la clase en una variable y no sé cómo eliminar el filtro sin él.
Modifiqué temporalmente el plugin. No es la mejor solución pero funciona …
Gracias de todos modos
(@fmixell)
Hace 1 año, 5 meses
Lamento que no te haya funcionado.
Sin embargo, si necesita obtener una lista de categorías mediante programación y luego ordenarlas, como mejor le parezca, y garantizar que ningún plugin agregará ningún problema a su pedido, puede usar lo siguiente.
$categories = get_categories();
// Compares string names for nested objects.
function cmp( $cat_one, $cat_two ) {
return strcmp($cat_one->name, $cat_two->name);
}
// Sorts categories array by nested names.
usort($categories, 'cmp');
// Displays out categories by nested names in list.
foreach( $categories as $category ) {
$category_link = sprintf(
'<a href="%1$s" alt="%2$s">%3$s</a>',
esc_url( get_category_link( $category->term_id ) ),
esc_attr( sprintf( __( 'View all posts in %s', 'textdomain' ), $category->name ) ),
esc_html( $category->name )
);
echo '<p>' . sprintf( esc_html__( '%s', 'textdomain' ), $category_link ) . '</p> ';
}
Esto mostrará una lista de categorías, pero puede modificar el marcado para desplegar o crear lo que desee.
Qué está sucediendo: – Estamos obteniendo un conjunto de Term Objects con get_categories()
– Luego tenemos nuestra función de comparación que nos permite comparar dos filas para ver en qué orden deben estar. – Luego pasamos esos Term Objects a usort
que reordena el término objetos en name
llave. – finalmente hacemos un bucle con foreach para mostrar todas las categorías en la matriz.
– Si sigue esta ruta, asegúrese de escapar de su salida correctamente como lo estoy haciendo arriba.
Si desea utilizar este código y necesita ayuda para convertirlo en una lista desplegable, avíseme que le configuraré otro ejemplo de código.
– Salud
Freddie
(@fmixell)
Hace 1 año, 4 meses
@dobled,
¡Buenas noticias, esta función se ha agregado al plugin para permitir temas más altos!
remove_filter( 'terms_clauses', [ Yikes_Custom_Taxonomy_Order::get_instance(), 'set_tax_order' ], 10, 3 );
wp_list_categories( [
'orderby' => 'name',
'order' => 'ASC',
] );
add_filter( 'terms_clauses', [ Yikes_Custom_Taxonomy_Order::get_instance(), 'set_tax_order' ], 10, 3 );
Este ejemplo le permitirá enumerar categorías por nombre ascendente. A continuación, debemos restaurar nuestro pedido personalizado y mostrar el pedido personalizado nuevamente.
¡Avíseme si todavía enfrenta este problema y si eso lo resuelve por usted!
Salud,
Freddie
¿Solucionó tu problema??
0 / 0