Come creare un ordinamento personalizzato per le categorie WordPress

7 ago 2013, 22:18:45
Visualizzazioni: 47.1K
Voti: 7

Ho questo problema che sto affrontando. Sto cercando di ordinare le mie categorie per visualizzarle nell'ordine che desidero. Ho letto la documentazione WordPress su tutte le opzioni di ordinamento. Tuttavia, non c'è alcuna indicazione su come scegliere le categorie e farle scorrere nel modo che voglio.

Questo è ciò che presenta il Codex:

orderby (stringa) Ordina le categorie alfabeticamente o per ID categoria univoco. Il valore predefinito è l'ordinamento per ID Categoria. Valori validi:
- id
- name - predefinito
- slug
- count
- term_group

order (stringa) Ordine di ordinamento per le categorie (ascendente o discendente). Il valore predefinito è ascendente. Valori validi:
- asc - predefinito
- desc

Tuttavia, come ho detto, questo non mi aiuta perché ho bisogno che vengano visualizzate nell'ordine che scelgo io.

Ecco il codice che sto implementando al momento, che è nell'ordine in cui voglio che vengano visualizzate.

<?php
$args = array(
'orderby' => 'ID',
'order' => 'ASC',
'include' => '5,6,7,8,29,9,10,11,12,13,14,15,16'
);
$categories = get_categories($args);
foreach($categories as $category) {
echo '<li><a href="' . get_category_link( $category->term_id ) . '" title="' . sprintf( __( "Visualizza tutti i post in %s" ), $category->name ) . '" ' . '>' . $category->name . '</a>' . ' ' . '(' . $category->count . ')' . '</li> ';
}
?>
3
Commenti

Questo post potrebbe aiutarti http://www.wphub.com/sorting-categories-custom-sort-order/

Srikanth AD Srikanth AD
7 ago 2013 22:30:59

Grazie per il link. L'ho guardato ma sembra richiedere molto lavoro e non vorrei davvero usare un plugin. Ma ti ringrazio molto per aver risposto così rapidamente. Sono davvero grato per il tempo che hai dedicato per cercare di aiutarmi.

Wayne Hatter Jr. Wayne Hatter Jr.
7 ago 2013 22:56:58

Questo potrebbe aiutarti. Anche se è per gli articoli, la seconda soluzione potrebbe esserti utile poiché utilizza php e array.

Sisir Sisir
7 ago 2013 23:01:40
Tutte le risposte alla domanda 3
0

Se stai già utilizzando Advanced Custom Fields (e dovresti farlo!) puoi creare un campo di ordinamento per le tue categorie da cui puoi impostarle manualmente in ordine numerico.

Quindi tutto ciò che devi fare è:

$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){
...

Dove category_order è il nome del campo che hai creato con ACF.

Nota: Utilizzando il metodo usort di PHP 5.3.

3 gen 2014 09:03:58
1

Okay, ho trovato questo plugin che fa esattamente quello che volevo. Non volevo usare un plugin ma questo sembrava piuttosto leggero e ha fatto il lavoro perfettamente. http://wordpress.org/plugins/taxonomy-terms-order/

7 ago 2013 23:42:54
Commenti

Al 19-07-2021, non rispecchia l'ordine di ordinamento desiderato sul front-end. Utilizzo di WordPress 5.7.2 con il tema Twenty Twenty One OOTB

klewis klewis
19 lug 2021 23:20:50
1

Il codice originale funzionerà se modifichi gli argomenti con: 'orderby' => 'include'

$args = array(
    'orderby' => 'include',
    'order' => 'ASC',
    'include' => '5,6,7,8,29,9,10,11,12,13,14,15,16'
);
$categories = get_categories($args);
foreach($categories as $category) {
    echo '<li><a href="' . get_category_link( $category->term_id ) . '" title="' . sprintf(     __( "Visualizza tutti i post in %s" ), $category->name ) . '" ' . '>' . $category->name . '</a>' . ' ' . '(' . $category->count . ')' . '</li> ';
}
18 ott 2019 18:44:29
Commenti

sì, per me funziona :)

Nuno Sarmento Nuno Sarmento
5 ago 2020 18:58:29