Définir des limites de publication et de contenu pour les pages d'accueil, de blog et d'archive
Publié: 2013-08-15Dans ce didacticiel, nous examinerons les paramètres Genesis intégrés que vous pouvez utiliser pour contrôler les limites de contenu dans vos archives et votre modèle de page de blog.
Nous prendrons également en considération les paramètres de lecture WordPress et leur impact sur les paramètres Genesis.
En plus de cela, nous examinerons également certains extraits de code fonctionnels que vous pouvez utiliser pour personnaliser davantage votre :
- Blog
- Les archives
- Page d'accueil
- Boucle de grille
- Types de publication personnalisés
Nous utiliserons le nouveau thème enfant Eleven40 Pro de StudioPress ainsi que le thème enfant Genesis 2.0 Sample qui n'inclut pas de boucle de grille ni de widgets de page d'accueil prêts à l'emploi.
Le thème Eleven40 Pro ainsi que plusieurs autres thèmes StudioPress comme le thème Balance incluent une boucle de grille personnalisée dans le fichier home.php.
Paramètres de lecture dans WordPress
Tout d'abord, examinons les paramètres existants fournis par WordPress dans les paramètres de lecture. Ces paramètres affecteront le nombre de messages affichés sur toutes vos pages d'archives, notamment :
- Page des listes de blogs
- Archiver les pages , y compris les pages d'auteur, de blog, de catégorie, de recherche et de balise
Les paramètres de lecture déterminent le nombre de messages affichés sur toutes vos pages d'archives et votre page d'accueil s'ils sont laissés aux paramètres par défaut, comme vous le voyez dans la capture d'écran ci-dessus.
Les paramètres de lecture ne contrôlent PAS votre page de blog car celle-ci est contrôlée par les paramètres du modèle de page de blog que Genesis inclut sous les paramètres Genesis > Thème :
Regardons un exemple de ceci : si vos paramètres de lecture sont définis pour afficher 5 articles, votre page d'accueil et toutes les archives afficheront 5 articles, mais votre page de blog affichera tout ce que vous avez défini pour l'afficher.
Même si les paramètres de lecture peuvent être définis sur : Les pages de blog affichent au maximum 5, cela ne s'applique qu'à la page d'accueil et NON lors de l'utilisation d'une page personnalisée statique avec le modèle de page de blog pour votre page de blog personnalisée.
Ces paramètres sont contrôlés par les paramètres du modèle de page de blog Genesis, comme indiqué dans la capture d'écran ci-dessus.
Personnalisation de la limite de publication par défaut de la page d'accueil
Si vous souhaitez que vos archives affichent le nombre défini dans les paramètres de lecture mais affichent un nombre différent de publications sur votre page d'accueil, vous devrez utiliser un code personnalisé dans le fichier functions.php de vos thèmes enfants :
add_action( 'pre_get_posts', 'change_posts_number_home_page' ); function change_posts_number_home_page( $query ) { if ($query->is_home() && $query->is_main_query() ) { $query->set( 'posts_per_page', 5 ); <pre><code>return $query; } </code></pre> }
Le code ci-dessus n'affectera pas le nombre de publications affichées dans vos archives.
Modifier le nombre de messages affichés sur les archives
Vous pouvez également utiliser ce code pour modifier le nombre de publications affichées sur différentes archives, telles que les pages d'archives de catégories et d'auteurs, sans affecter les paramètres de lecture qui contrôlent les autres :
add_action( 'pre_get_posts', 'change_number_posts_per_category' ); function change_number_posts_per_category( $query ) { <pre><code>if ( is_category('29') ) { $query->set( 'posts_per_page', 1 ); return $query; </code></pre> }}
Personnalisation de la limite de publication de boucle de grille sur la page d'accueil
Si votre thème inclut une boucle de grille dans le fichier home.php, vous pouvez simplement contrôler le nombre de messages en pleine largeur et le nombre de messages de boucle de grille affichés sur votre page d'accueil.
En plus de cela, vous pouvez également contrôler la limite de contenu pour les publications en vedette et les publications affichées dans la grille uniquement sur la page d'accueil, car le code est inclus dans le fichier home.php.
Tous les paramètres sont dans le code de boucle de grille du fichier home.php :
<?php remove_action( 'genesis_loop', 'genesis_do_loop' ); add_action( 'genesis_loop', 'eleven40_grid_loop_helper' ); /** Add support for Genesis Grid Loop */ function eleven40_grid_loop_helper() { <pre><code>if ( function_exists( 'genesis_grid_loop' ) ) { genesis_grid_loop( array( 'features' => 1, 'feature_image_size' => 0, 'feature_image_class' => 'alignleft post-image', 'feature_content_limit' => 0, 'grid_image_size' => 'grid-featured', 'grid_image_class' => 'grid-featured', 'grid_content_limit' => 250, 'more' => __( '[Continue reading]', 'eleven40' ), 'posts_per_page' => 5, ) ); } else { genesis_standard_loop(); } </code></pre> } genesis();
Le code PHP ci-dessus est configuré pour afficher 5 messages. En commençant par une publication en vedette qui affiche la largeur totale du contenu et la limite de contenu illimitée, définie sur 0, elle affiche donc le contenu complet de la première publication.
Il affiche ensuite 4 messages dans une grille avec chacun défini à une limite de contenu de 250 avec une image en vedette si vous en avez téléchargé un pour chaque message et que vous l'avez défini comme une image en vedette.
Ces paramètres sont remplacés par les paramètres de lecture, ce qui signifie que si vos paramètres de lecture sont définis pour afficher 20 publications, c'est ce que votre page d'accueil affichera, quels que soient les paramètres de la boucle de grille ci-dessus.
Pour personnaliser cela, vous pouvez utiliser ce code PHP ci-dessous dans votre fichier functions.php de thèmes enfants pour écraser vos paramètres de lecture pour votre boucle de grille et donc utiliser les paramètres de lecture pour contrôler le nombre de messages affichés sur toutes vos pages d'archives.
Modifier la limite des messages de boucle de grille
add_action( 'pre_get_posts', 'change_num_posts_in_grid' ); function change_num_posts_in_grid( $query ) { global $wp_the_query; if( $query->is_main_query() && is_home() ) { $query->set( 'posts_per_page', '5' ); } }
Le code ci-dessus peut également être modifié pour fonctionner sur toutes les autres pages utilisant la boucle de grille simplement en changeant la balise conditionnelle dans le code de is_home() à autre chose.
Sous-pages de la page d'accueil
Si vous souhaitez également contrôler le nombre de messages affichés sur les sous-pages pour la grille ou les extraits standard, vous pouvez utiliser un code comme celui-ci :
add_action( 'pre_get_posts', 'change_num_posts_in_grid' ); function change_num_posts_in_grid( $query ) { global $wp_the_query; if( $query->is_main_query() && is_home() && is_paged() ) { $query->set( 'posts_per_page', '5' ); } }
En savoir plus sur l'utilisation de la boucle de grille Genesis pour différentes dispositions de poste d'accueil.
Modifier la limite de contenu pour une catégorie spécifique
Vous pouvez également écraser les paramètres de lecture WordPress et personnaliser la limite d'extraits sur n'importe quelle archive, y compris vos archives de page d'accueil, d'auteur, de blog, de catégorie, de recherche et de balise.
add_filter('excerpt_length', 'specific_category_excerpt_length'); function specific_category_excerpt_length($length) { if(is_category('29') ) { return 20; } }
Le code ci-dessus modifiera la longueur de l'extrait sur la page de catégorie avec un identifiant de 29 à une limite de 20 mots.
Vous pouvez également rajouter des balises de formatage HTML supprimées des extraits par WordPress.
En plus de cela, vous pouvez utiliser ce code ci-dessous pour contrôler la limite de contenu des extraits sur des archives spécifiques, puis également définir d'autres pour afficher une limite définie. Remarque : Votre Genesis > Paramètres du thème > Archives de contenu doit être configuré pour afficher les extraits et non la limite de contenu.
add_filter('excerpt_length', 'specific_category_excerpt_length'); function specific_category_excerpt_length($length) { if(in_category('web-design') ) { return 20; } else { return 500; } }
Le code ci-dessus affiche une limite de contenu pour les extraits dans la catégorie de conception Web de 20 et toutes les autres archives affichent une limite de 500.
Voici du code PHP qui inclut un tableau de plusieurs catégories :
add_filter('excerpt_length', 'specific_category_excerpt_length'); function specific_category_excerpt_length($length) { if(in_category(array( 153,154,156 ) ) ) { return 100; } else { return 300; } }
Ce code utilise les identifiants de catégorie et affiche une limite de contenu de 100 pour 3 catégories. Toutes les autres archives affichent une limite de 300.
En savoir plus sur la personnalisation des extraits.
Type de message personnalisé (CPT)
Voici le code qui détermine le nombre de messages d'un type de message personnalisé affichés sur la page d'archives du CPT :
add_action( 'pre_get_posts', 'cpt_archive_items_limit' ); function cpt_archive_items_limit( $query ) { <pre><code>if( $query->is_main_query() && !is_admin() && is_post_type_archive( 'your-cpt' ) ) { $query->set( 'posts_per_page', '3' ); } </code></pre> }
Remplacez simplement your-cpt dans le code ci-dessus par le nom de votre type de publication personnalisé.
Conclusion
Vous pouvez voir par vous-même que l'utilisation de crochets et de filtres WordPress fonctionne également parfaitement dans Genesis.
Solutions similaires
- Configuration pour afficher des extraits d'entrée sur n'importe quel modèle de page d'archive
- Code pour définir la limite d'archivage de contenu Genesis
- Afficher le contenu complet de la publication ou des extraits sur des pages d'archives spécifiques
- Personnaliser les pages d'archives de manière conditionnelle à l'aide de messages pré-obtenus
- Afficher des extraits sur la page du blog et le contenu complet sur d'autres archives dans Genesis