Je voudrais utiliser une archive de type de publication personnalisée comme première page d'un site, afin que
http://the_site.com/
est une archive de type de publication personnalisée affichée en fonction de mon archive-{post-type}.php
fichier.
Idéalement, je voudrais modifier la requête à l'aide is_front_page()
de mon functions.php
fichier. J'ai essayé ce qui suit, avec une page intitulée "Accueil" comme première page:
add_filter('pre_get_posts', 'my_get_posts');
function my_get_posts($query){
global $wp_the_query;
if(is_front_page()&&$wp_the_query===$query){
$query->set('post_type','album');
$query->set('posts_per_page',-1);
}
return $query;
}
mais la première page renvoie le contenu de "Accueil" et semble ignorer la requête personnalisée.
Qu'est-ce que je fais mal? Y a-t-il une meilleure façon, en général, de procéder?
Réponses:
Après avoir défini une page statique comme page d'accueil, vous pouvez l'ajouter à votre
functions.php
et vous êtes prêt à partir. Cela appellera également learchive-POSTTYPE.php
modèle correctement.la source
if(is_admin()) return;
au tout début, sinon elle gâche la zone d'administration.Renommez votre archive CPT en home.php
Utilisez ensuite pre_get_posts pour modifier la requête de la page d'accueil afin que seul l'affichage CPT
Remplacez your-cpt par le nom de votre type de publication personnalisé.
la source
Merci pour la réponse ljaas - je cherchais à résoudre ce problème exact. Afin d'obtenir le modèle d'archive de type de publication personnalisé à appeler, j'ai dû ajouter les conditions suivantes:
la source
Cela fonctionne mieux pour moi, remplaçant à la fois les articles de blog et la page statique dans Paramètres> Lecture> La page d'accueil s'affiche:
Je l'utilise en conjonction avec un remplacement de modèle à l'aide des filtres
front_page_template
ethome_template
pour retourner un modèle personnalisé.la source
Pour moi, cela rompt la pagination: soit vous sélectionnez l'index soit une page statique comme page d'accueil, les liens de pagination apparaissent mais en cliquant sur la page 2 j'obtiens:
Je pense qu'il a besoin de quelques règles de réécriture pour intercepter l'argument paginé et le transmettre correctement.
Quoi qu'il en soit, une page de modèle personnalisée devrait être la solution avec des règles de réécriture supplémentaires.
la source