Cum să modifici ordinea categoriilor în panoul de administrare?
Ordinea categoriilor în panoul de administrare este alfabetică. Pot să o schimb într-o ordine personalizată?
Am găsit un răspuns în acest răspuns.
add_filter( 'get_terms_args', 'wpse_53094_sort_get_terms_args', 10, 2 );
function wpse_53094_sort_get_terms_args( $args, $taxonomies )
{
global $pagenow;
if( !is_admin() || ('post.php' != $pagenow && 'post-new.php' != $pagenow) )
return $args;
$args['orderby'] = 'slug';
$args['order'] = 'DESC';
return $args;
}
Parametrul order poate fi ASC sau DESC, iar orderby poate lua următoarele valori:
countdescription(ar trebui să funcționeze, dar nu a mers prea bine în testele mele, sunt necesare teste suplimentare)nameslug
Plugin-uri de interes
(le putem numi Plinteresante?)
Primele două sunt foarte scurte și pot fi ușor incorporate în codul tău.
Category Checklist Expander : mărește înălțimea listei de categorii, astfel încât nu este necesară derularea
Category Checklist Tree : reconstruiește Meta Box-ul Categorii, astfel încât îi poți modifica codul pentru stilizare suplimentară sau adaptare a cutiei - iată un screenshot cu ce face

Gecka Terms Ordering : creează o tabelă auxiliară în baza de date (
wp_termmeta) pentru gestionarea ordinii. Are funcționalități de drag and drop.
Mulțumesc mult! [pe lângă acele plugin-uri, am scris și un shortcode care afișează categoriile în structură arborescentă]
Shimon S
Poate cea mai ușoară metodă ar fi manipularea DOM cu jQuery, verifică acest răspuns pentru inspirație :)
brasofilo
Folosește plugin-ul Advanced Custom Fields (Acest plugin este util în multe moduri diferite). Apoi creează un câmp personalizat pentru ordonare (category_order) cu regula 'Taxanomy_Term' este egal cu 'Categories'.
Apoi în functions.php al temei tale (sau într-un loc relevant) folosește:
$categories = get_categories( $args );
usort($categories, function($a, $b) {
return get_field("category_order", "category_".$a->term_id) - get_field("category_order", "category_".$b->term_id);
});
foreach ($categories as $category){
...
Unde category_order este numele câmpului pe care l-ai creat cu ACF.
Acest articol este inspirat de acesta aici.
Nu există o opțiune implicită pentru aceasta, dar există alte două modalități.
- Modifică în fișierele temei http://codex.wordpress.org/Template_Tags/wp_list_categories
- Folosește un plugin. De exemplu http://wordpress.org/extend/plugins/my-category-order/
Cred că sugestia ta este pentru partea de utilizatori. Eu caut cum să schimb ordinea în partea de administrare.
Shimon S
Ambele sugestii sunt pentru administratori. Utilizatorii nu ar trebui să aibă acces la fișierele temei, iar dacă te uiți la instrucțiunile pentru plugin, vorbim clar despre utilizare administrativă.
user1337
@user1337 - confunzi utilizatorul "admin" (sau având drepturi administrative asupra unui site) cu interfața WordPress, numită și Admin sau Panou de control.
brasofilo
@brasofilo - Deloc. Fie utilizatorul "admin", fie cineva care are acces la plugin-uri în panoul de administrare sau dashboard poate instala acel plugin și poate schimba ordinea în care sunt listate categoriile. De asemenea, se poate folosi un plugin de roluri pentru a delega această abilitate către alte roluri în afară de administrator.
user1337
Va funcționa plugin-ul în această cutie meta?
brasofilo