web-dev-qa-db-fra.com

page d'index de type de publication personnalisée

J'ai enregistré un type de publication personnalisé et je veux créer une page où je listerai quelques publications, ce sera comme une page d'index.

J'ai créé une page d'archive appelée mycpt-archive.php et une page appelée myCPT.php.

J'ai ajouté une URL personnalisée dans le menu appelé "myCPT" comme ceci: www.mywebsite.com/mycpt Maintenant, lorsque je clique dans le menu frontal sur "myCPT", il affiche le - mycpt-archive.php contenu et non myCPT.php.

J'ai parcouru la hiérarchie des modèles de CODEX et il me semble que je suis sur la bonne voie.

Lorsque je clique sur "myCPT" dans le menu frontal, la page affichée est mycpt-archive.php pas myCPT.php que je m'attends à ouvrir.

Qu'est-ce que j'oublie ici ? Merci !

1
agis

Si tu as:

register_post_type( 'my_custom_post_type', $args );

Et vous avez besoin d'une page personnalisée pour afficher toutes les entrées de ce type de message personnalisé, vous devez créer: archive-my_custom_post_type.php. Mais si vous n'avez pas besoin d'une page personnalisée, wordpress utilisera archive.php pour afficher votre archive de type de publication personnalisée.

Si vous avez seulement besoin de personnaliser la page d'entrée, vous devez créer: single-my_custom_post_type.php

Où créez-vous le type de publication personnalisé, dans le thème functions.php ou en utilisant un plugin?

Si vous utilisez functions.php, vous devez créer archive-my_custom_post_type.php ou single-my_custom_post_type.php dans le dossier du thème.

Si vous utilisez un plugin, vous devez créer archive-my_custom_post_type.php ou single-my_custom_post_type.php dans le dossier des plugins et pointez wordpress pour le lire, alors incluez cette fonction dans votre plugin:

 fonction get_custom_post_type_template ($ template) {
 global $ post; 
 
 if ($ post-> post_type == 'my_custom_post_type') {
 $ template = dirname (__FILE__). '/archive-my_custom_post_type.php';
} 
 return $ template; 
} 
 
 // add_filter ("single_template", "get_custom_post_type_template_template "); // pour une seule page 
 add_filter ("archive_template", "get_custom_post_type_template"); // pour l'archive 
3
eduardogoncalves

Il semble presque que vous créiez une page de modèle personnalisée nommée et que vous mettiez le code de requête personnalisé que vous souhaitez dans cette page de modèle particulière. Une fois que vous avez créé la page de modèle, créez une véritable page wordpress et configurez-la pour utiliser cette page de modèle personnalisée. Est-ce que cela a du sens.

  1. Créez une page de modèle personnalisée.
  2. mettez les commentaires nécessaires pour nommer la page de modèle.
  3. Écrivez le wp_query personnalisé pour extraire les messages particuliers que vous voulez
  4. Créez une page à l'intérieur de wordpress.
  5. Réglez-le pour utiliser la page de modèle que vous créez.
  6. Hit publier

Une fois que vous avez terminé, vous souhaiterez probablement modifier la page de modèle pour Tweak et affiner votre requête.

Faites-moi savoir si je suis sur la bonne voie pour vos besoins.

0
MiracleGotMojo