WordPress: come elencare le pagine secondarie utilizzando uno shortcode
Abbiamo ricostruito la gerarchia dei siti per molti dei nostri WordPress clienti e una delle cose che cerchiamo di fare è organizzare le informazioni in modo efficiente. Per fare ciò, spesso vogliamo creare una pagina master e includere un menu che elenchi automaticamente le pagine sottostanti. Un elenco di pagine secondarie o sottopagine.
Sfortunatamente, non esiste alcuna funzione o caratteristica intrinseca per farlo in WordPress, quindi abbiamo sviluppato uno shortcode da aggiungere al sito del cliente. Ecco come puoi utilizzare lo shortcode con tutte le sue variabili popolate all'interno di un post o di una pagina WordPress:
[listchildpages ifempty="No child pages found" order="ASC" orderby="title" ulclass="custom-ul-class" liclass="custom-li-class" aclass="custom-a-class" displayimage="yes" align="aligncenter"]
Ripartizione dell'utilizzo:
ifempty="No child pages found"
: questo testo verrà visualizzato se non sono disponibili pagine secondarie.order="ASC"
: ordina l'elenco delle pagine figlie in ordine crescente.orderby="title"
: ordina le pagine figlie in base al titolo.ulclass="custom-ul-class"
: applica la classe CSS “custom-ul-class” al file<ul>
elemento della lista.liclass="custom-li-class"
: applica la classe CSS "custom-li-class" a ciascuno<li>
elemento nell'elenco.aclass="custom-a-class"
: applica la classe CSS "custom-a-class" a ciascuno<a>
(link) elemento nell'elenco.displayimage="yes"
: include l'immagine in primo piano di ciascuna pagina secondaria nell'elenco.align="aligncenter"
: allinea le immagini in primo piano al centro.
Inserisci questo shortcode direttamente nell'area del contenuto di un post o di una pagina WordPress in cui desideri che venga visualizzato l'elenco delle pagine secondarie. Ricorda di personalizzare i valori di ciascun attributo per adattarli al design e alla struttura del tuo sito WordPress.
Inoltre, se desideri un file breve estratto descrivendo ogni pagina, il plug-in abilita gli estratti sulle pagine in modo che tu possa modificare quel contenuto nelle impostazioni della pagina.
Elenca gli shortcode delle pagine secondarie
function add_shortcode_listchildpages($atts, $content = "") {
global $post;
$string = '';
$atts = shortcode_atts(array(
'ifempty' => '<p>No Records</p>',
'order' => 'DESC',
'orderby' => 'publish_date',
'ulclass' => '',
'liclass' => '',
'aclass' => '',
'displayimage' => 'no',
'align' => 'alignleft'
), $atts, 'listchildpages');
$args = array(
'post_type' => 'page',
'posts_per_page' => -1,
'post_parent' => $post->ID,
'orderby' => $atts['orderby'],
'order' => $atts['order']
);
$parent = new WP_Query($args);
if ($parent->have_posts()) {
$string .= $content.'<ul class="'.$atts['ulclass'].'">';
while ($parent->have_posts()) : $parent->the_post();
$string .= '<li class="'.$atts['liclass'].'">';
$true = array("y", "yes", "t", "true");
$showimage = strtolower($atts['displayimage']);
if (in_array($showimage, $true)) {
if (has_post_thumbnail($post->ID)) {
$image_attributes = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID), 'thumbnail');
$string .= '<a class="'.$atts['aclass'].'" href="'.get_permalink().'" title="'.get_the_title().'">';
$string .= '<img src="'.$image_attributes[0].'" width="'.$image_attributes[1].'" height="'.$image_attributes[2].'" alt="'.get_the_title().'" class="'.$atts['align'].'" /></a>';
}
}
$string .= '<a class="'.$atts['aclass'].'" href="'.get_permalink().'" title="'.get_the_title().'">'.get_the_title().'</a>';
if (has_excerpt($post->ID)) {
$string .= ' - '.get_the_excerpt();
}
$string .= '</li>';
endwhile;
$string .= '</ul>';
} else {
$string = $atts['ifempty'];
}
wp_reset_postdata();
return $string;
}
add_shortcode('listchildpages', 'add_shortcode_listchildpages');
La funzione add_shortcode_listchildpages
aggiunge uno shortcode personalizzato
No Records
- Variabile postale globale: La funzione inizia dichiarando la variabile globale
$post
, che viene utilizzato per accedere alle informazioni sul post o sulla pagina corrente all'interno di WordPress. - Attributi shortcode: Il
shortcode_atts
la funzione imposta i valori predefiniti per gli attributi dello shortcode. Gli utenti possono sovrascriverli quando inseriscono lo shortcode. Gli attributi includono:ifempty
: messaggio da visualizzare se non sono presenti pagine figlie.order
: Ordine delle pagine figlie (ASC o DESC).orderby
: criteri per ordinare le pagine secondarie (ad esempio,public_date).ulclass
: classe CSS per il<ul>
elemento.liclass
: classe CSS per il<li>
elementi.aclass
: classe CSS per il<a>
(ancora) elementi.displayimage
: se visualizzare l'immagine in primo piano delle pagine figlie.align
: Allineamento dell'immagine in primo piano.
- Argomenti della query: La funzione imposta a
WP_Query
per recuperare tutte le pagine figlie della pagina corrente, ordinate in base agli attributi specificati. - Generazione dell'elenco:
- Se vengono trovate pagine secondarie, la funzione costruisce un elenco HTML non ordinato (
<ul>
), con ciascuna pagina secondaria rappresentata da una voce di elenco (<li>
). - All'interno di ciascuna voce dell'elenco, la funzione verifica se visualizzare l'immagine in primo piano in base al
displayimage
attributo. - La funzione crea anche un collegamento a ciascuna pagina secondaria utilizzando il file
<a>
tag e, se disponibile, aggiunge l'estratto della pagina figlia.
- Se vengono trovate pagine secondarie, la funzione costruisce un elenco HTML non ordinato (
- Messaggio di output o predefinito: Se non ci sono pagine figlie, la funzione restituisce il messaggio specificato da
ifempty
attributo. - Reimposta i dati del post: Il
wp_reset_postdata
la funzione reimposta la query di WordPress, assicurando che il file global$post
l'oggetto viene ripristinato nel post della query principale originale. - Registrazione del codice breve: Infine, il
add_shortcode
registri di funzionilistchildpages
come nuovo shortcode, collegandolo al fileadd_shortcode_listchildpages
funzione, rendendola disponibile per l'uso in post e pagine.
Questa funzione è utile per elencare dinamicamente le sottopagine su una pagina principale, migliorando la navigazione e l'organizzazione all'interno di un sito WordPress. Ti consiglio di aggiungerlo a un plugin personalizzato se desideri aggiungerlo al tuo sito WordPress. Oppure… puoi scaricare il plugin che ho pubblicato.
Elenca il plugin shortcode delle pagine secondarie
Alla fine sono riuscito a inserire il codice in un plugin per renderlo più facile da installare e utilizzare, e il file Elenca il plug-in Shortcode delle pagine secondarie è stato approvato da WordPress oggi! Scaricalo e installalo: se ti piace, fornisci una recensione!