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
- 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. - 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.
- 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. - 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.
- As kinderbladsye gevind word, bou die funksie 'n HTML ongeordende lys (
- Uitvoer of verstekboodskap: As daar geen kinderbladsye is nie, voer die funksie die boodskap uit wat deur die
ifempty
kenmerk. - 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. - Kortkode registrasie: Ten slotte, die
add_shortcode
funksie registerslistchildpages
as 'n nuwe kortkode, wat dit koppel aan dieadd_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!