Inhoud bemarking

WordPress: Hoe om kinderbladsye met 'n kortkode te lys

Ons het die hiërargie van werwe vir verskeie van ons herbou WordPress kliënte, en een van die dinge wat ons probeer doen, is om die inligting doeltreffend te organiseer. Om dit te doen, wil ons dikwels 'n meesterbladsy skep en 'n spyskaart insluit wat outomaties die bladsye daaronder lys. 'n Lys van kinderbladsye, of subbladsye.

Ongelukkig is daar geen inherente funksie of kenmerk om dit binne WordPress te doen nie, so ons het 'n kortkode ontwikkel om by die kliënt se webwerf te voeg. Hier is hoe jy die kortkode kan gebruik met al sy veranderlikes wat in 'n WordPress-plasing of -bladsy gevul is:

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

Uiteensetting van gebruik:

  • ifempty="No child pages found": Hierdie teks sal vertoon word as daar geen kinderbladsye beskikbaar is nie.
  • order="ASC": Dit sorteer die lys van kinderbladsye in stygende volgorde.
  • orderby="title": Dit rangskik die kinderbladsye volgens hul titel.
  • ulclass="custom-ul-class": Pas die CSS-klas "custom-ul-class" toe op die <ul> element van die lys.
  • liclass="custom-li-class": Pas die CSS-klas "custom-li-class" toe op elkeen <li> element in die lys.
  • aclass="custom-a-class": Pas die CSS-klas "custom-a-class" toe op elkeen <a> (skakel) element in die lys.
  • displayimage="yes": Dit sluit die uitgestalde prent van elke kinderbladsy in die lys in.
  • align="aligncenter": Dit belyn die vertoonde beelde in die middel.

Voeg hierdie kortkode direk in die inhoudsarea van 'n WordPress-plasing of -bladsy in waar jy wil hê dat die lys kinderbladsye moet verskyn. Onthou om die waardes van elke kenmerk aan te pas om by die ontwerp en struktuur van jou WordPress-werf te pas.

As u ook 'n kort uittreksel Met die beskrywing van elke bladsy kan die uittreksels uittreksels op bladsye moontlik maak sodat u die inhoud op die instellings van die bladsy kan wysig.

Lys kinderbladsye kortkode

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');

Die funksie add_shortcode_listchildpages voeg 'n pasgemaakte kortkode by

No Records

, wat jy binne WordPress-plasings of -bladsye kan gebruik om 'n lys kinderbladsye te vertoon. Hier is 'n uiteensetting van hoe die kode werk:

  1. Global Post Variable: Die funksie begin deur die globale veranderlike te verklaar $post, wat gebruik word om toegang te verkry tot inligting oor die huidige pos of bladsy binne WordPress.
  2. Kortkode-kenmerke: Die shortcode_atts funksie stel verstekwaardes op vir die kortkode-kenmerke. Gebruikers kan dit ignoreer wanneer hulle die kortkode invoeg. Kenmerke sluit in:
    • ifempty: Boodskap om te wys as daar geen kinderbladsye is nie.
    • order: Volgorde van die kinderbladsye (ASC of DESC).
    • orderby: Kriteria vir die bestelling van kinderbladsye (bv. publish_date).
    • ulclass: CSS klas vir die <ul> element.
    • liclass: CSS klas vir die <li> elemente.
    • aclass: CSS klas vir die <a> (anker) elemente.
    • displayimage: Of die uitgestalde prent van die kinderbladsye moet vertoon.
    • align: Belyning van die uitgestalde prent.
  3. Doen navraag oor argumente: Die funksie stel 'n op WP_Query om alle kinderbladsye van die huidige bladsy te haal, gesorteer volgens die gespesifiseerde eienskappe.
  4. Genereer die lys:
    • As kinderbladsye gevind word, bou die funksie 'n HTML ongeordende lys (<ul>), met elke kinderbladsy verteenwoordig deur 'n lysitem (<li>).
    • Binne elke lysitem kontroleer die funksie of die vertoonde beeld gebaseer op die displayimage kenmerk.
    • Die funksie skep ook 'n skakel na elke kinderbladsy deur die <a> merker, en indien beskikbaar, voeg die uittreksel van die kinderbladsy by.
  5. Uitvoer of verstekboodskap: As daar geen kinderbladsye is nie, voer die funksie die boodskap uit wat deur die ifempty kenmerk.
  6. Stel plasingdata terug: Die wp_reset_postdata funksie stel die WordPress-navraag terug, om te verseker dat die globale $post voorwerp word teruggestel na die oorspronklike hoofnavraag se pos.
  7. Kortkode registrasie: Ten slotte, die add_shortcode funksie registers listchildpages as 'n nuwe kortkode, wat dit koppel aan die add_shortcode_listchildpages funksie, wat dit beskikbaar maak vir gebruik in plasings en bladsye.

Hierdie funksie is nuttig om subbladsye dinamies op 'n ouerbladsy te lys, om navigasie en organisasie binne 'n WordPress-werf te verbeter. Ek sal aanbeveel om dit by 'n pasgemaakte inprop te voeg as jy dit by jou WordPress-werf wil voeg. Of ... jy kan die inprop aflaai wat ek gepubliseer het.

Lys kinderbladsye kortkode-inprop

Uiteindelik het ek die kode in 'n inprop gestoot om dit makliker te maak om te installeer en te gebruik, en die Lys 'n kinderbladsy-kortkode-inprop is vandag deur WordPress goedgekeur! Laai dit asseblief af en installeer dit - as jy daarvan hou, gee 'n resensie!

WordPress-inprop vir die lys van kinderbladsye

Douglas Karr

Douglas Karr is CMO van Maak INSIGTE oop en die stigter van die Martech Zone. Douglas het tientalle suksesvolle MarTech-opstartondernemings gehelp, het gehelp met die omsigtigheidsondersoek van meer as $5 miljard in Martech-verkrygings en -beleggings, en gaan voort om maatskappye te help met die implementering en outomatisering van hul verkoops- en bemarkingstrategieë. Douglas is 'n internasionaal erkende digitale transformasie en MarTech deskundige en spreker. Douglas is ook 'n gepubliseerde skrywer van 'n Dummie-gids en 'n besigheidsleierskapboek.

verwante Artikels

Terug na bo knoppie
Sluiting

Advertensieblok bespeur

Martech Zone is in staat om hierdie inhoud gratis aan u te verskaf, want ons verdien ons webwerf deur advertensie-inkomste, geaffilieerde skakels en borgskappe. Ons sal dit waardeer as jy jou advertensieblokkering sal verwyder terwyl jy ons webwerf bekyk.