web-dev-qa-db-fra.com

Ordre des postes par nom de catégorie

Est-il possible de commander des publications par nom de catégorie?

J'ai essayé

$args = array(
    'post_type' => 'dlm_download',
    'posts_per_page' => 10,
    'paged' => $paged,
    'order_by'=> 'cat', 
    'order' => 'ASC'
);

Mais cela ne fonctionne pas vraiment, pourrait-il plaire à quelqu'un de me donner un indice?

2
user1512390

J'ai eu le même combat que vous, merci, je me suis assis et j'ai repensé le tout, vous devez en fait sélectionner toutes les catégories et lui transmettre l'identifiant de la catégorie.

Puisque vous utilisez un fichier dlm_download, vous devez procéder comme suit: obtenez les termes de la catégorie dlm_download_category

$cats = get_terms('dlm_download_category');

Faites une boucle dans la catégorie et passez-y query_posts

alors

foreach ($cats as $cat) 
{

$args = array(
'post_type' => 'dlm_download',
'dlm_download_category' => $cat->slug,
);

query_posts($args);

if (have_posts()) : 
while (have_posts()) : the_post(); 
// your stuff here
endwhile;
endif; 
}

Et voilà

PS: si vous voulez le faire avec posts pas avec custom post

Than $cats = get_categories();

et passez 'cat' à l'argument.

J'espère que c'est clair et aide. À votre santé

2
Levente Nagy

Le problème ici est que vous pouvez avoir plusieurs catégories assignées à un seul poste. Dans ce cas, de quelle catégorie est basée la commande?

Une solution consiste à créer un script qui stocke le nom de la catégorie dans une méta-valeur et à utiliser le orderby=meta_value pour créer le bon ordre.

0
Tyler Carter