Imposta i limiti di post e contenuti per le pagine home, blog e archivio
Pubblicato: 2013-08-15In questo tutorial daremo un'occhiata alle impostazioni di Genesis integrate che puoi utilizzare per controllare i limiti di contenuto nei tuoi archivi e nel modello di pagina del blog.
Prenderemo in considerazione anche le impostazioni di lettura di WordPress e il modo in cui influiscono sulle impostazioni di Genesis.
Inoltre, esamineremo anche alcuni snippet di codice funzionanti che puoi utilizzare per personalizzare ulteriormente il tuo:
- Pagina del blog
- Archivi
- Pagina iniziale
- Ciclo di griglia
- Tipi di post personalizzati
Utilizzeremo il nuovo tema figlio Eleven40 Pro di StudioPress e il tema figlio di Genesis 2.0 Sample che non include alcun loop di griglia o widget della home page pronti all'uso.
Il tema Eleven40 Pro insieme a molti altri temi di StudioPress come il tema Balance includono un loop di griglia personalizzato nel file home.php.
Impostazioni di lettura in WordPress
Innanzitutto, diamo un'occhiata alle impostazioni esistenti che WordPress fornisce nelle Impostazioni di lettura. Queste impostazioni influenzeranno il numero di post visualizzati su tutte le pagine dell'archivio, tra cui:
- Pagina degli elenchi del blog
- Pagine di archivio incluse pagine di autore, blog, categoria, ricerca e tag
Le impostazioni di lettura determinano quanti post vengono visualizzati su tutte le pagine dei tuoi archivi e sulla home page se lasciati alle impostazioni predefinite come vedi nella schermata sopra.
Le impostazioni di lettura NON controllano la pagina del tuo blog poiché questa è controllata dalle impostazioni del modello di pagina del blog che Genesis include in Genesi > Impostazioni del tema:
Diamo un'occhiata a un esempio di questo: se le tue Impostazioni di lettura sono impostate per visualizzare 5 post, la tua home page e tutti gli archivi visualizzeranno 5 post, tuttavia la pagina del tuo blog mostrerà tutto ciò che hai impostato per visualizzare.
Anche se le impostazioni di Lettura potrebbero essere impostate su: Le pagine del blog mostrano al massimo 5, questo si applica solo alla home page e NON quando si utilizza una pagina personalizzata statica con il modello di pagina del blog per la pagina del blog personalizzata.
Queste impostazioni sono controllate dalle impostazioni del modello di pagina del blog di genesis, come mostrato nello screenshot sopra.
Personalizzazione del limite di pubblicazione predefinito della home page
Se vuoi che i tuoi archivi visualizzino il numero impostato nelle Impostazioni di lettura ma visualizzi un numero diverso di post sulla tua home page, dovrai utilizzare del codice personalizzato nel tuo file functions.php dei temi figlio:
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> }
Il codice sopra non influirà sul numero di post visualizzati nei tuoi archivi.
Modifica il numero di post visualizzati negli archivi
Puoi anche utilizzare questo codice per modificare il numero di post visualizzati su archivi diversi come le pagine di archivio di categorie e autori senza influire sulle Impostazioni di lettura che controllano gli altri:
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> }}
Personalizzazione del limite di post del ciclo della griglia sulla home page
Se il tuo tema include un loop di griglia nel file home.php, puoi semplicemente controllare quanti post in primo piano a larghezza intera e quanti post di loop di griglia sono visualizzati sulla tua home page.
Inoltre, puoi anche controllare il limite di contenuto sia per i post in primo piano che per i post visualizzati nella griglia solo nella home page poiché il codice è incluso nel file home.php.
Tutte le impostazioni sono nel codice del ciclo della griglia del file 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();
Il codice PHP sopra è impostato per visualizzare 5 post. A partire da un post in primo piano che mostra l'intera larghezza del contenuto e il limite di contenuto illimitato impostato su 0 in modo da visualizzare l'intero contenuto del post del primo post.
Quindi visualizza 4 post in una griglia con ciascuno impostato a un limite di contenuto di 250 con immagine in primo piano se ne hai caricato uno per ogni post e lo hai impostato come immagine in primo piano.
Queste impostazioni vengono sovrascritte dalle Impostazioni di lettura, il che significa che se le tue Impostazioni di lettura sono impostate per visualizzare 20 post, questo è ciò che la tua home page visualizzerà indipendentemente dalle impostazioni nel ciclo della griglia sopra.
Per personalizzarlo, puoi utilizzare questo codice PHP di seguito nel file functions.php del tuo bambino temi per sovrascrivere le impostazioni di lettura per il loop della griglia e quindi utilizzare le impostazioni di letture per controllare quanti post vengono visualizzati su tutte le pagine dell'archivio.
Modifica il limite dei post del ciclo della griglia
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' ); } }
Il codice sopra può anche essere modificato per funzionare su qualsiasi altra pagina usando il ciclo della griglia semplicemente cambiando il tag condizionale nel codice da is_home() a qualcos'altro.
Pagine secondarie della home page
Se vuoi anche controllare il numero di post visualizzati nelle pagine secondarie per la griglia o gli estratti standard, puoi utilizzare un codice come questo:
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' ); } }
Scopri di più sull'uso del ciclo della griglia Genesis per diversi layout di articoli per la casa.
Modifica il limite di contenuto per una categoria specifica
Puoi anche sovrascrivere le impostazioni di lettura di WordPress e personalizzare il limite di estratti su qualsiasi archivio, inclusi gli archivi di home, autore, blog, categoria, ricerca e tag page.
add_filter('excerpt_length', 'specific_category_excerpt_length'); function specific_category_excerpt_length($length) { if(is_category('29') ) { return 20; } }
Il codice sopra cambierà la lunghezza dell'estratto nella pagina della categoria con un ID di 29 a un limite di 20 parole.
Puoi anche aggiungere nuovamente i tag di formattazione HTML rimossi da estratti da WordPress.
Inoltre, puoi utilizzare questo codice di seguito per controllare il limite di contenuto di estratti su archivi specifici e quindi impostare anche altri per visualizzare un limite impostato. Nota: la tua Genesi > Impostazioni del tema > Archivi di contenuti deve essere impostata per visualizzare gli estratti e non il limite di contenuto.
add_filter('excerpt_length', 'specific_category_excerpt_length'); function specific_category_excerpt_length($length) { if(in_category('web-design') ) { return 20; } else { return 500; } }
Il codice sopra mostra un limite di contenuto per gli estratti nella categoria web design di 20 e tutti gli altri archivi mostrano un limite di 500.
Ecco del codice PHP che include una matrice di più categorie:
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; } }
Questo codice utilizza gli ID di categoria e visualizza un limite di contenuto di 100 per 3 categorie. Tutti gli altri archivi visualizzano un limite di 300.
Ulteriori informazioni sulla personalizzazione degli estratti.
Tipo di post personalizzato (CPT)
Ecco il codice che determina quanti post in un tipo di post personalizzato vengono visualizzati nella pagina di archivio del 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> }
Sostituisci semplicemente your-cpt nel codice sopra con il nome del tuo tipo di post personalizzato.
Conclusione
Puoi vedere di persona che l'utilizzo di hook e filtri di WordPress funziona perfettamente anche in Genesis.
Soluzioni simili
- Impostazione per visualizzare estratti di voci su qualsiasi modello di pagina di archivio
- Codice per impostare il limite di archiviazione dei contenuti Genesis
- Visualizza il contenuto completo del post o gli estratti su pagine di archivio specifiche
- Personalizza le pagine di archivio in modo condizionale utilizzando i post pre-ottenibili
- Visualizza estratti sulla pagina del blog e contenuto completo su altri archivi in Genesis