Dans un tutoriel précédent, j'ai montré comment créer une archive de taxonomie qui répertorie les publications par terme de taxonomie..
Ce tutoriel est similaire en ce sens qu'il vous montre comment séparer les articles dans vos archives, mais qu'il utilise une structure et un fichier de modèle différents. Ce que je vais vous montrer ici, c'est créer un modèle d'archive pour une taxonomie qui répertorie les publications par type de publication..
Cela peut être utile si vous avez enregistré un type de publication que vous souhaitez conserver séparément des publications normales ou d'un autre type de publication, tout en ayant une taxonomie qui s'applique aux deux. Par exemple, si vous répertoriez des livres et des articles sous différents types d'articles, mais que vous avez des sujets communs comme votre taxonomie (par exemple, WordPress!).
Dans l'exemple que je vais utiliser ici, je travaillerai avec le type de message "animaux" comme je le faisais dans le tutoriel précédent, mais cette fois, je vais aussi travailler avec des messages normaux. Je vais d'abord lister les animaux avec le terme recherché, puis les articles de blog avec ce terme.
Je vais créer un thème qui est un thème enfant de vingt-quatre ans. Par conséquent, si vous utilisez les fichiers source de ce didacticiel, vous devez également installer ce thème sur votre site. Dans la feuille de style de mon thème, j'ajoute ce qui suit:
/ * Nom du thème: WPTutsPlus Création d'une archive de taxonomie pour répertorier les messages par type de message URI du thème: http://rachelmccollin.co.uk/wptutsplus-tax-archive-by-post-type/ Description: thème de prise en charge du didacticiel WPTutsPlus sur la création. une archive de taxonomie personnalisée. Thème enfant pour le thème Vingt Quatorze. Auteur: Rachel McCollin Auteur URI: http://rachelmccollin.co.uk/ Modèle: vingt-quatre ans Version: 1.0 * / @import url ("… /twentyfourteen/style.css");
C'est tout ce que j'ai besoin d'ajouter pour créer mon thème enfant. Si vous utilisez votre propre thème, vous pouvez ignorer cette étape..
Remarque: Si vous avez suivi mon autre didacticiel sur la création d'un modèle d'archive personnalisé, vous pouvez utiliser le thème que vous avez créé à cet effet, car il utilise les mêmes types de publication et la même taxonomie. Vous aurez juste besoin de faire un tweak que je vais mettre en évidence dans cette section, et ajouter un nouveau fichier de modèle pour les archives de taxonomie.
L'étape suivante consiste à enregistrer le type de poste "animal" et une taxonomie "famille d'animaux". Créer un functions.php
fichier pour votre thème et ajoutez d’abord la fonction pour enregistrer le type de message:
// enregistre un type de message personnalisé appelé fonction 'animaux' wptp_create_post_type () $ labels = array ('nom' => __ ('Animaux'), 'nom singulier' => __ ('animal'), 'add_new' => __ ('Nouvel animal'), 'add_new_item' => __ ('Ajouter un nouvel animal'), 'edit_item' => __ ('Éditer un animal'), 'new_item' => __ ('Nouvel animal'), 'view_item '=> __ (' Voir animal '),' search_items '=> __ (' Rechercher des animaux '),' not_found '=> __ (' Aucun animal trouvé '),' not_found_in_trash '=> __ (' Aucun animal trouvé dans Poubelle' ), ); $ args = array ('labels' => $ labels, 'has_archive' => true, 'public' => true, 'hierarchical' => false, 'supports' => array ('titre', 'éditeur', ' extrait ',' custom-fields ',' thumbnail ',' attribut de page '),' taxonomies '=> array (' post_tag ',' category '),); register_post_type ('animal', $ args); add_action ('init', 'wptp_create_post_type');
Ensuite, en-dessous de cette étape, enregistrez la taxonomie de la famille Aminal.
Si vous utilisez le thème créé dans le didacticiel précédent, vous devrez ajouter tableau ('animal,' post ')
à vos arguments pour la fonction, l'intention de juste 'animal'
.
// enregistre une taxonomie appelée fonction 'Famille d'animaux' wptp_register_taxonomy () register_taxonomy ('animal_cat', array ('animal', 'post'), array ('labels' => array ('nom' => 'Familles animales' , 'singular_name' => 'Famille d’animaux', 'search_items' => 'Rechercher les familles d’animaux', 'all_items' => 'Toutes les familles d’animaux', 'edit_item' => 'Modifier les familles d’animaux', 'update_item' => ' Mettre à jour la famille d'animaux ',' add_new_item '=>' Ajouter une nouvelle famille d'animaux ',' new_item_name '=>' Nouveau nom de famille d'animaux ',' menu_name '=>' Famille d'animaux ',),' hierarchical '=> true,' '=> true,' args '=> array (' orderby '=>' term_order '),' rewrite '=> array (' slug '=>' animal-family '),' show_admin_column '=> true)); add_action ('init', 'wptp_register_taxonomy');
Enregistrez votre fichier de fonctions et vous verrez votre nouveau type de message et votre nouvelle taxonomie apparaître dans l'administrateur de votre site..
Ajoutez maintenant quelques données - j'ai ajouté des animaux et des publications à la famille 'Canines'.
Maintenant, créez un fichier appelé taxonomy-animal_cat.php
. Ce sera le modèle d'archive pour la nouvelle taxonomie.
Copiez le code wrapper de votre thème dans ce fichier afin qu’il ait des éléments et des classes en commun avec le reste de votre thème. Je copie à partir de vingt-quatre ans - si vous utilisez votre propre thème, copiez à partir de cela. Copiez tout, sauf l'en-tête et la boucle, et ajoutez des commentaires en haut pour vous rappeler à quoi sert ce fichier:
4. Identification de l'objet interrogé
Pour que vous puissiez afficher le nom du terme interrogé et définir vos requêtes dans les deux boucles que vous allez créer, vous devez identifier l'objet interrogé et l'enregistrer en tant que variable..
Ajoutez ce qui suit quelque part en haut de votre modèle d’archive (je l’ajoute en dessous
get_header ()
appel):Vous allez l'utiliser dans la prochaine étape.
5. Sortie du titre de l'archive
Avant d'ajouter vos boucles, vous devez générer un en-tête pour votre page d'archive. À l'intérieur de l'ouverture du
#contenu
div, ajoutez le code ci-dessous:prénom; ?>
6. La première boucle
Sous l'en-tête, vous devez ajouter votre première boucle à l'aide de
WP_Query
comme vous aurez besoin de définir les arguments.Définissez d'abord la requête:
// Définit la requête $ args = array ('post_type' => 'animal', 'animal_cat' => $ term-> slug); $ query = new WP_Query ($ args);Notez que cela utilise le
$ terme
variable que vous avez déjà définie.Et ajoutez ensuite la boucle, générant un lien vers chaque animal dans une liste non ordonnée:
if ($ query-> have_posts ()) // affiche le nom du terme dans une balise de titre echo 'Animaux dans le '. $ terme-> nom. 'Famille
'; // affiche les titres de l'article dans une liste echo '
Il est important d'inclure deux choses ici:
wp_reset_postdata ()
pour réinitialiser la requête - vous devez toujours l'utiliser avec WP_Query
.La deuxième boucle est presque identique à la première, à l'exception des arguments de la requête:
'post', 'animal_cat' => $ term-> slug); $ query = new WP_Query ($ args); if ($ query-> have_posts ()) // affiche le nom du terme dans une balise de titre echo 'Articles de blogue sur le '. $ terme-> nom. 'Famille
'; // affiche les titres de l'article dans une liste echo '
Enregistrez maintenant votre fichier de modèle et prévisualisez l'archive. Vous devriez voir deux listes, l’une des animaux et l’autre des posts:
C'est ainsi que vous créez une archive de taxonomie pour répertorier les publications par type de publication. Vous pouvez étendre cette technique pour rendre vos pages d’archives plus intéressantes:
Je suis sûr que vous pouvez penser à plus de possibilités!