Cela semble être une question stupide. Mais, je ne peux pas le comprendre :(.
J'ai besoin d'afficher un bouton à la maison qui va à l'URL d'archive de post_type personnalisé (archive- {post_type} .php). Comment je fais ça?
custom-post-types
templates
ariefbayu
la source
la source
yoursite.com/type-slug
sauf si vous la définissez explicitement sur autre chose, par exemple.yoursite.com/some-other-url
..Réponses:
Salut @ Silent:
Il s'avère qu'il y a une fonction dans WordPress 3.1 qui fait exactement ce que vous voulez et elle est nommée
get_post_type_archive_link()
; voici comment vous l'appeleriez (en supposant un type de publication personnalisé nommé'product'
):Ci-dessous est ma réponse précédente avant de découvrir que WordPress avait en effet une fonction intégrée pour ce cas d'utilisation.
Réponse précédente:
À moins d'avoir oublié quelque chose dans le code source principal de WordPress 3.1, je pense que vous recherchez une fonction comme celle
get_archive_link()
que vous pourriez appeler comme ceci (en supposant un type de publication personnalisé nommé'product'
):Et voici le code source que vous pouvez placer dans le
function.php
fichier de votre thème ou dans un.php
fichier pour un plugin que vous pourriez écrire:Je travaillais en fait sur cette logique exacte au cours du week-end, bien que je ne sois pas encore sûr à 100% que l'ordre de la logique est générique dans tous les cas d'utilisation que WordPress pourrait voir, bien qu'il fonctionnera probablement pour n'importe quel site spécifique.
C'est aussi une bonne chose à suggérer d'être ajouté à WordPress via trac, ce que je pense que je ferai plus tard ce soir.
la source
lorsque vous enregistrez le type de publication, vous pouvez passer une chaîne en tant que slug avec le paramètre "has_archive" et assurez-vous que vous définissez également la réécriture sur true ou un tableau mais pas false, puis l'URL de votre archive CPT serait http://www.YOURDOMAIN.com / has_archive_slug par exemple
si vous définissez par exemple votre register_post_type:
alors votre URL unique est: http://www.YOURDOMAIN.com/product/postName et votre URL d'archive est: http://www.YOURDOMAIN.com/products/
la source
has_archive
c'était un booléen, mais maintenant je sais qu'on peut lui donner une chaîne, donc mon type de message personnalisérecipe
peut avoir un slug pluriel/recipes/
'rewrite'
n'accepte qu'une valeur booléenne ou tableau. Plutôt que celui que'rewrite' => 'product',
vous avez énuméré, il devrait plutôt l'être'rewrite' => array( 'slug' => 'product' ),
.