Kontenta Merkatumado

WordPress: Kiel Listigi Infanajn Paĝojn Uzante Shortcode

Ni rekonstruis la hierarkion de retejoj por pluraj el niaj WordPress klientoj, kaj unu el la aferoj, kiujn ni provas fari, estas organizi la informojn efike. Por fari tion, ni ofte volas krei ĉefpaĝon kaj inkluzivi menuon, kiu aŭtomate listigas la paĝojn sub ĝi. Listo de infanaj paĝoj aŭ subpaĝoj.

Bedaŭrinde, ne ekzistas eneca funkcio aŭ funkcio por fari tion en WordPress, do ni evoluigis mallongan kodon por aldoni al la retejo de la kliento. Jen kiel vi povas uzi la mallongan kodon kun ĉiuj ĝiaj variabloj loĝitaj ene de WordPress-afiŝo aŭ paĝo:

[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"]

Diskonigo de Uzado:

  • ifempty="No child pages found": Ĉi tiu teksto estos montrata se ne estas infanaj paĝoj disponeblaj.
  • order="ASC": Ĉi tio ordigas la liston de infanaj paĝoj en pligranda ordo.
  • orderby="title": Ĉi tio ordigas la infanajn paĝojn laŭ ilia titolo.
  • ulclass="custom-ul-class": Aplikas la CSS-klason "custom-ul-class" al la <ul> elemento de la listo.
  • liclass="custom-li-class": Aplikas la CSS-klason "custom-li-class" al ĉiu <li> elemento en la listo.
  • aclass="custom-a-class": Aplikas la CSS-klason "custom-a-class" al ĉiu <a> (ligo) elemento en la listo.
  • displayimage="yes": Ĉi tio inkluzivas la elstaran bildon de ĉiu infana paĝo en la listo.
  • align="aligncenter": Ĉi tio vicigas la elstarajn bildojn en la centro.

Enigu ĉi tiun mallongkodon rekte en la enhavareon de WordPress-afiŝo aŭ paĝo, kie vi volas, ke la listo de infanaj paĝoj aperu. Memoru personecigi la valorojn de ĉiu atributo por kongrui kun la dezajno kaj strukturo de via WordPress retejo.

Aldone, se vi ŝatus mallonga ekstrakto priskribante ĉiun paĝon, la aldonaĵo ebligas ekstraktojn en paĝoj, tiel ke vi povas redakti tiun enhavon en la agordoj de la paĝo.

Listo de Infanaj Paĝoj Shortcode

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 funkcio add_shortcode_listchildpages aldonas kutiman mallongan kodon

No Records

, kiun vi povas uzi ene de WordPress-afiŝoj aŭ paĝoj por montri liston de infanpaĝoj. Jen malkovro de kiel funkcias la kodo:

  1. Tutmonda Afiŝo Variablo: La funkcio komenciĝas per deklarado de la tutmonda variablo $post, kiu estas uzata por aliri informojn pri la nuna afiŝo aŭ paĝo ene de WordPress.
  2. Shortcode AtributojLa shortcode_atts funkcio starigas defaŭltajn valorojn por la shortcode-atributoj. Uzantoj povas superregi ĉi tiujn kiam ili enigas la mallongkodon. Atributoj inkluzivas:
    • ifempty: Mesaĝo por montri se ne estas infanaj paĝoj.
    • order: Ordo de la infanaj paĝoj (ASC aŭ DESC).
    • orderby: Kriterioj por mendi infanajn paĝojn (ekz. publikigi_daton).
    • ulclass: CSS-klaso por la <ul> elemento.
    • liclass: CSS-klaso por la <li> elementoj.
    • aclass: CSS-klaso por la <a> (ankro) elementoj.
    • displayimage: Ĉu montri la elstaran bildon de la infanaj paĝoj.
    • align: vicigo de la elstara bildo.
  3. Demandaj Argumentoj: La funkcio starigas a WP_Query por retrovi ĉiujn filajn paĝojn de la nuna paĝo, ordigitaj laŭ la specifitaj atributoj.
  4. Generante la Liston:
    • Se infanaj paĝoj estas trovitaj, la funkcio konstruas HTML neordigitan liston (<ul>), kun ĉiu infanpaĝo reprezentita per listero (<li>).
    • Ene de ĉiu listero, la funkcio kontrolas ĉu montri la elstaran bildon bazitan sur la displayimage atribui.
    • La funkcio ankaŭ kreas ligilon al ĉiu infana paĝo uzante la <a> etikedo, kaj se disponebla, aldonas la eltiraĵon de la infana paĝo.
  5. Eligo aŭ Defaŭlta Mesaĝo: Se ne estas infanaj paĝoj, la funkcio eligas la mesaĝon specifitan de la ifempty atribui.
  6. Restarigi Afiŝajn DatumojnLa wp_reset_postdata funkcio restarigas la WordPress demando, certigante ke la tutmonda $post objekto estas restarigita al la afiŝo de la originala ĉefa demando.
  7. Shortcode Registrado: Fine, la add_shortcode funkciregistroj listchildpages kiel nova shortcode, ligante ĝin al la add_shortcode_listchildpages funkcio, farante ĝin disponebla por uzo en afiŝoj kaj paĝoj.

Ĉi tiu funkcio estas utila por dinamike listigi subpaĝojn sur gepaĝo, plibonigante navigadon kaj organizon en WordPress-ejo. Mi rekomendus aldoni ĝin al kutima kromaĵo se vi ŝatus aldoni ĝin al via WordPress-ejo. Aŭ... vi povas elŝuti la kromprogramon, kiun mi publikigis.

Listo de Infanaj Paĝoj Shortcode Kromaĵo

Mi finfine volis puŝi la kodon en aldonaĵon por faciligi instaladon kaj uzadon, kaj la Enlistigu aldonaĵon de Knabpaĝoj Shortcode estis aprobita de WordPress hodiaŭ! Bonvolu elŝuti kaj instali ĝin - se vi ŝatas ĝin, provu recenzon!

WordPress Kromaĵo por Listigi Infanajn Paĝojn

Douglas Karr

Douglas Karr estas CMO de OpenINSIGHTS kaj la fondinto de la Martech Zone. Douglas helpis dekduojn da sukcesaj MarTech-noventreprenoj, helpis en la konvena diligento de pli ol $ 5 miliardoj en Martech-akiroj kaj investoj, kaj daŭre helpas firmaojn en efektivigado kaj aŭtomatigo de siaj vendaj kaj merkatigstrategioj. Douglas estas internacie agnoskita cifereca transformo kaj MarTech-eksperto kaj parolanto. Douglas ankaŭ estas publikigita verkinto de la gvidisto de Dummie kaj komerca gvidadlibro.

rilataj Artikoloj

Reen al la supra butono
Fermi

Adbloko Detektita

Martech Zone kapablas provizi al vi ĉi tiun enhavon senkoste ĉar ni monetigas nian retejon per reklamaj enspezoj, filiaj ligiloj kaj sponsorado. Ni dankus se vi forigus vian reklamblokilon dum vi rigardas nian retejon.