web-dev-qa-db-fra.com

Affichage des messages d'une catégorie par ordre alphabétique

  1. J'ai un type de message personnalisé appelé "lien"
  2. J'ai un taxonomie personnalisée pour ce type de message appelé "catégorie de lien"
  3. J'ai un fichier modèle pour cette taxonomie, "taxonomy-link-category.php"
  4. J'ai besoin du modèle pour afficher les publications de la catégorie de liens sélectionnée dans ordre alphabétique

EDIT: sur la page LINKS du site Web, tous les noms de catégorie pour le type de publication personnaliséLIENsont affichés dans une liste. Une fois qu'un visiteur a cliqué sur le nom d'une catégorie, Wordpress est nécessaire pour répertorier tous les articles de cette catégorie, par ordre alphabétique. Je le travaille, avec le code ci-dessous (en utilisant le fichier modèle: taxonomy-link-category.php), mais les articles sont affichés chronologiquement, et seulement 10 d’entre eux (le mot wordpress par défaut).

J'ai essayé des choses comme ceci: Afficher un type d'article personnalisé par ordre alphabétique mais bien sûr, il affiche ...EDIT: tous les articles LINK, pas seulement ceux de l'article sélectionné. Catégorie.

Ceci est mon code actuel dans taxonomy-link-category.php, ne puis-je pas simplement ajouter 'orderby' => 'title', 'order' => 'ASC' quelque part/en quelque sorte?

<?php get_header(); ?>
  <div id="content">                    
    <h1>Links</h1>
    <h2><?php echo get_queried_object()->name; ?></h2>
    <?php if (have_posts()) :   // start the loop ?>                    
        <?php while (have_posts()) : the_post(); // loop the posts ?>
            <h3><?php the_title(); ?></h3>
            <?php the_content(); ?> 
        <?php endwhile;     // stop looping the posts ?>                                
        <?php else :        // what to do if there are no posts to show ?>
        <h3>No posts</h3>
    <?php endif;        // end the loop  ?>
  </div><!-- #content -->
<?php get_footer(); ?>
2
codeview

Utilisez l'action pre_get_posts pour modifier la requête avant son exécution. Placez ceci dans le functions.php de votre thème:

function wpd_tax_alpha( $query ) {
    if ( $query->is_tax('link-category') && $query->is_main_query() ) {
        $query->set( 'orderby', 'title' );
        $query->set( 'order', 'ASC' );
    }
}
add_action( 'pre_get_posts', 'wpd_tax_alpha' );
3
Milo

Oui. Mais j'ai bien peur de ne pas comprendre votre intention.

As-tu essayé:

$args = array( 
    'post_type' => 'link', 
    'tax_query' => array(
    array(
        'taxonomy' => 'link-category',
        'field' => 'slug',
        'terms' => array( 'Birds', 'Cats', 'Dogs' )
    )
    ),
    'orderby' => 'title',
    'order' => 'ASC' 
    );
$query = new WP_Query($args);

Cela devrait produire une liste triée par ordre alphabétique où le tableau de termes est présent dans la taxonomie des catégories de liens.

** EDIT original code manquait une virgule après le tableau de termes.

1
jdm2112