web-dev-qa-db-fra.com

Tri alphabétique du type de message personnalisé - une lettre par page

Ce que je recherche, en gros, est un moyen de trier le type de message personnalisé par ordre alphabétique et de séparer chaque lettre, de sorte que vous disposiez d’une lettre par page. Voir l'illustration. Espérons qu'il existe un plugin ou un autre moyen génial de le faire.

Lien vers l'illustration -> http://postimg.org/image/5yyhidf7n/

1
Magnus Østrem

Construire la navigation est assez simple. Vous avez quelques possibilités par la suite. Je vous conseillerais de créer un modèle de page et d’utiliser un paramètre GET- pour le trier.

en utilisant une variable GET

Vos liens dans la navigation ressemblent à ceci: http://www.example.com/yourpage?letter=a

Dans le modèle de page, vous effectuez une requête simple dans la variable wpdb.

global $wpdb;
$yourposts = $wpdb->get_results( 
    $wpdb->prepare( 
        "
            SELECT * FROM $wpdb->posts
            WHERE post_title LIKE %s
            AND post_type = 'yourposttype'
        ",
            $_GET['letter'] . '%' 
        )
);

Vous pouvez simplement parcourir le tableau renvoyé ici.

en utilisant un type de message personnalisé

Vous pouvez également créer une publication personnalisée de type alphabet ou quelque chose du genre. Créez chaque poste dans ce CPT avec les lettres de l'alphabet ('a', 'b', ...)

Cela donne des URLs comme http://www.example.com/alphabet/a, et il est également très facile de construire la navigation alphabétique avec.

Dans votre single-alphabet.php, vous utilisez le code ci-dessus, mais vous remplacez le $_GET['letter'] par get_the_title(). Bien sûr, vous pouvez également atteindre cet objectif en utilisant des métadonnées, mais la solution utilisant un type de publication personnalisé est assez élégante, car la structure de votre URL est bien fournie, sans aucun effort.

en utilisant une taxonomie

enfin, c'est une autre façon de faire, mais pas vraiment pratique car vous devez toujours attribuer votre taxonomie en fonction du titre (post 'banana' doit obtenir la taxonomie 'b').

En fonction de ce que vous essayez d’atteindre, je choisirais la version du type de publication personnalisée.

1
fischi