Marketing Content

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

, che puoi utilizzare all'interno dei post o delle pagine di WordPress per visualizzare un elenco di pagine figlie. Ecco una ripartizione di come funziona il codice:

  1. 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.
  2. 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.
  3. Argomenti della query: La funzione imposta a WP_Query per recuperare tutte le pagine figlie della pagina corrente, ordinate in base agli attributi specificati.
  4. 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.
  5. Messaggio di output o predefinito: Se non ci sono pagine figlie, la funzione restituisce il messaggio specificato da ifempty attributo.
  6. 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.
  7. Registrazione del codice breve: Infine, il add_shortcode registri di funzioni listchildpages come nuovo shortcode, collegandolo al file add_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!

Plugin WordPress per l'elenco delle pagine secondarie

Douglas Karr

Douglas Karr è CMO di ApriINSIGHTS e il fondatore della Martech Zone. Douglas ha aiutato dozzine di startup MarTech di successo, ha assistito nella due diligence di oltre 5 miliardi di dollari in acquisizioni e investimenti Martech e continua ad assistere le aziende nell'implementazione e nell'automazione delle loro strategie di vendita e marketing. Douglas è un esperto e relatore di trasformazione digitale e MarTech riconosciuto a livello internazionale. Douglas è anche autore di una guida per manichini e di un libro sulla leadership aziendale.

Articoli Correlati

Torna a pulsante in alto
Chiudi

Blocco annunci rilevato

Martech Zone è in grado di fornirti questi contenuti gratuitamente perché monetizziamo il nostro sito attraverso entrate pubblicitarie, link di affiliazione e sponsorizzazioni. Ti saremmo grati se rimuovessi il blocco degli annunci mentre visiti il ​​nostro sito.