WordPress: як пералічыць даччыныя старонкі з дапамогай кароткага кода
Мы аднавілі іерархію сайтаў для некалькіх з нашых WordPress кліентаў, і адна з рэчаў, якія мы спрабуем зрабіць, гэта эфектыўна арганізаваць інфармацыю. Для гэтага мы часта хочам стварыць галоўную старонку і ўключыць меню, якое аўтаматычна пералічвае старонкі пад ёй. Спіс даччыных старонак або падстаронак.
На жаль, у WordPress няма ўласнай функцыі або магчымасці, таму мы распрацавалі кароткі код для дадання на сайт кліента. Вось як вы можаце выкарыстоўваць кароткі код з усімі яго зменнымі, зададзенымі ў паведамленні або на старонцы 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"]
Разбіўка выкарыстання:
ifempty="No child pages found"
: гэты тэкст будзе адлюстроўвацца, калі няма даступных даччыных старонак.order="ASC"
: гэта сартуе спіс даччыных старонак у парадку ўзрастання.orderby="title"
: гэта ўпарадкоўвае даччыныя старонкі па іх назвах.ulclass="custom-ul-class"
: прымяняе клас CSS «custom-ul-class» да<ul>
элемент спісу.liclass="custom-li-class"
: прымяняе клас CSS «custom-li-class» да кожнага<li>
элемент у спісе.aclass="custom-a-class"
: прымяняе клас CSS «карыстальніцкі клас» да кожнага<a>
(спасылка) элемент у спісе.displayimage="yes"
: Сюды ўваходзіць выява кожнай даччынай старонкі ў спісе.align="aligncenter"
: Гэта выраўноўвае прадстаўленыя выявы па цэнтры.
Устаўце гэты кароткі код непасрэдна ў вобласць змесціва паведамлення або старонкі WordPress, дзе вы хочаце, каб з'явіўся спіс даччыных старонак. Не забудзьце наладзіць значэнні кожнага атрыбута ў адпаведнасці з дызайнам і структурай вашага сайта WordPress.
Акрамя таго, калі вы хочаце кароткі ўрывак апісваючы кожную старонку, убудова ўключае вытрымкі на старонках, так што вы можаце рэдагаваць гэта змесціва ў наладах старонкі.
Спіс кароткіх кодаў даччыных старонак
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');
функцыя add_shortcode_listchildpages
дадае карыстальніцкі кароткі код
No Records
- Глабальная зменная паведамлення: Функцыя пачынаецца з аб'яўлення глабальнай зменнай
$post
, які выкарыстоўваецца для доступу да інфармацыі аб бягучай публікацыі або старонцы ў WordPress. - Атрыбуты кароткага кода:
shortcode_atts
функцыя ўсталёўвае значэнні па змаўчанні для атрыбутаў кароткага кода. Карыстальнікі могуць перавызначыць іх, уставіўшы кароткі код. Атрыбуты ўключаюць:ifempty
: Паведамленне для адлюстравання, калі няма даччыных старонак.order
: парадак даччыных старонак (ASC або DESC).orderby
: Крытэрыі ўпарадкавання даччыных старонак (напрыклад, дата_публікацыі).ulclass
: Клас CSS для<ul>
элемент.liclass
: Клас CSS для<li>
элементы.aclass
: Клас CSS для<a>
(якарныя) элементы.displayimage
: Ці паказваць абраны відарыс даччыных старонак.align
: Выраўноўванне прадстаўленай выявы.
- Аргументы запыту: функцыя наладжвае a
WP_Query
каб атрымаць усе даччыныя старонкі бягучай старонкі, адсартаваныя ў адпаведнасці з зададзенымі атрыбутамі. - Стварэнне спісу:
- Калі даччыныя старонкі знойдзены, функцыя стварае неўпарадкаваны спіс HTML (
<ul>
), з кожнай даччынай старонкай, прадстаўленай элементам спісу (<li>
). - У кожным пункце спісу функцыя правярае, ці трэба паказваць паказаную выяву на аснове
displayimage
атрыбутаў. - Функцыя таксама стварае спасылку на кожную даччыную старонку з дапамогай
<a>
і, калі ёсць, дадае фрагмент даччынай старонкі.
- Калі даччыныя старонкі знойдзены, функцыя стварае неўпарадкаваны спіс HTML (
- Вывад або паведамленне па змаўчанні: Калі даччыных старонак няма, функцыя выводзіць паведамленне, вызначанае ў
ifempty
атрыбутаў. - Скінуць даныя паведамлення:
wp_reset_postdata
функцыя скідае запыт WordPress, гарантуючы, што глаб$post
аб'ект аднаўляецца да зыходнага галоўнага паведамлення запыту. - Рэгістрацыя па кароткім коду: Нарэшце, ст
add_shortcode
рэгістры функцыйlistchildpages
як новы кароткі код, звязваючы яго зadd_shortcode_listchildpages
функцыя, што робіць яго даступным для выкарыстання ў паведамленнях і на старонках.
Гэтая функцыя карысная для дынамічнага пералічэння падстаронак на бацькоўскай старонцы, паляпшэння навігацыі і арганізацыі на сайце WordPress. Я рэкамендаваў бы дадаць яго ў карыстацкі плагін, калі вы хочаце дадаць яго на свой сайт WordPress. Або... вы можаце загрузіць плагін, які я апублікаваў.
Убудова для кароткіх кодаў спісу даччыных старонак
Я, нарэшце, абышоўся з націскам кода ў плагін, каб было прасцей усталяваць і выкарыстоўваць, і Спіс убудоў шорткода даччыных старонак быў ухвалены WordPress сёння! Калі ласка, спампуйце і ўсталюйце яго - калі вам гэта падабаецца, дайце водгук!