在頁面模板的制作中,很多時候會在側邊欄調用當前頁面的子頁面名字和鏈接。如用于展示教程的頁面模板,需要調用當前Page頁面的page子頁面標題、內容、鏈接、特色圖像等內容,可以通過get_pages函數獲取所屬子頁面信息,然后使用foreach循環輸出。
get_pages函數
說明:get_pages( )函數用于獲取博客中已定義頁面的列表。下面是它的典型用法。
用法: <?php get_pages('arguments'); ?>
get_pages獲取子頁面例子
<?php $pages = get_pages('child_of='.$post->ID.'&sort_column=post_date&sort_order=desc&parent='.$post->ID); foreach($pages as $page){ $content = $page->post_content;?> <div> 特色圖像:<?php echo get_the_post_thumbnail($page->ID); ?> 輸出標題:<?php echo $page->post_title; ?> 輸出內容:<?php echo $content; ?> 輸出鏈接<a href="<?php echo get_page_link($page->ID); ?>">閱讀全文</a> </div><?php } ?>
這里的特色圖像輸出的為整個img標簽,不能輸出純圖片地址,下面的例子則是可以輸出純圖片地址:
<?php $pages = get_pages('child_of='.$post->ID.'&sort_column=post_date&sort_order=desc&parent='.$post->ID); $post_thumbnail_id = get_post_thumbnail_id($post->ID); foreach($pages as $page){ $content = $page->post_content; ?> <div class="col-12 col-sm-6 col-md-4 col-lg-3"> <div class="zhuanti-tile"> <div class="zhuanti-tile__wrap"> <div class="background-img lazyload" data-bg="<?php echo get_the_post_thumbnail_url($page->ID); ?>"> </div> <div class="zhuanti-tile__inner"> <div class="zhuanti-tile__text inverse-text"> <a class="zhuanti-tile__name cat-theme-bg" href="<?php echo get_page_link($page->ID); ?>"><?php echo $page->post_title; ?></a> </div> </div> </div> </div> </div><?php } ?>
參數說明
sort_column (字符)按不同方式對頁面列表進行排序。默認設置成按頁面標題的字母順序排序。'post_title' —— 按頁面標題的字母順序排序——默認
'menu_order' —— 按頁面順序(Page Order)進行排序。注意頁面順序和頁面編號的區別。頁面編號是由WordPress為每篇文章或頁面設定的獨有的數字,而頁面順序則由用戶在管理欄的Write>Pages中設置。
'post_date' —— 按頁面創建日期排序。
'post_modified' —— 按最后修改時間進行排序。
'ID' —— 按頁面序列編號排序。
'post_author' —— 按頁面創建者的序列編號排序。
'post_name' —— 按頁面縮略名的字母順序排序。
sort_order (字符) 更改頁面列表的排列順序(升序或降序)。默認為升序。可能的值為:'asc' ——按從低到高順序排列(默認);'desc' —— 按從高到低順序排列
exclude (字符) 定義一列頁面編號并用逗號隔開,將其從已有列表中刪除(例如:'exclude=3,7,1')。無默認值。
include (字符) 僅包含get_pages生成的特定頁面列表。include參數與exclude同樣用逗號將頁面編號隔開。無默認值。
child_of (整數) 僅顯示單個頁面的子頁面;值為默認編號。默認值為0(顯示所有頁面)。注意child_of參數不僅獲取直系子頁面,也會從已知編號中獲取“孫頁面”。0 ——默認,不限制子頁面
parent (整數) 顯示以該整數為父級的頁面。默認值為-1(顯示所有頁面)。注意這可限制child_of參數的“深度”,因此只能檢索到下一級頁面。-1 ——默認,不限制父頁面
exclude_tree (整數) 與'child_of'相反,'exclude_tree'從結果中移除已知編號的所有子頁面。也可用于隱藏已知頁面的所有子頁面。該參數還可聯合'child_of' 的值以隱藏孫頁面。在2.7版本中該參數可用。
hierarchical(布爾型)在上級頁面列表下以縮進方式顯示下級頁面。默認值為true(在父級列表項下顯示其子頁面)。可能的值有:1(true默認; 0(false)
meta_key(字符)僅包含含有該自定義字段關鍵字的頁面(與meta_value字段聯合使用)。
meta_value(字符)僅包含含有該自定義字段值的頁面(與meta_key字段聯合使用)。
authors(字符)僅包含給定作者所寫的文章。返回一個數組,數組中包含所有與請求匹配的頁面。
get_page_children()函數
通過頁面id獲取所有子頁面;
用法:
<?php get_page_children( $page_id, $pages ) ?>
wp_list_pages()函數
wp_list_pages( )將WordPress頁面作為鏈接顯示出來。該模板標簽常用于自定義側邊欄或標題,也常用于其他模板中。該模板標簽在WordPress 1.5及更新版本中可用。
用法:
<?php wp_list_pages('arguments'); ?>
默認參數設置為: $defaults = array(
'depth' => 0, 顯示所有頁面和子頁面(無深度限制)
'show_date' => '', 不顯示創建日期
'date_format' => get_option('date_format'),
'child_of' => 0, 子頁面無限制
'exclude' => '', 不刪除任何頁面
'title_li' => __('Pages'), 頁面列表的標題為“Pages(頁面)”
'echo' => 1, 回顯(顯示)結果
'authors' => '', 不局限于特定作者
'sort_column' => 'menu_order, post_title', 先按頁面順序再按頁面標題排序
'link_before' => '',
'link_after' => '',
'exclude_tree'=> '' );不刪除父級/子級樹
隱藏或改變列表標題
//給title_li參數傳遞一個零值或空值,可以隱藏由wp_list_pages生成的頁面列表默認標題。<ul><?php wp_list_pages('title_li='); ?></ul> //在下面這個例子中,列表中只包含編號為9,5,23的頁面,標題內容被改為“Poetry”,格式為< h2 >: <ul><?php wp_list_pages('include=5,9,23&title_li=<h2>' . __('Poetry') . '</h2>' ); ?></ul> //用exclude參數可隱藏列表中由wp_list_pages生成的若干頁面。 <ul><?php wp_list_pages('exclude=17,38' ); ?></ul>
頁面按條件排列
//下面的例子將頁面按管理欄中 Write > Page 定義的頁面順序進行排列。 <ul><?php wp_list_pages('sort_column=menu_order'); ?></ul //如果希望將列表按頁面順序進行排列并將“Prose”作為列表標題(以h2格式)顯示在側邊欄中,可將以下代碼添加到sidebar.php文件中: <ul><?php wp_list_pages('sort_column=menu_order&title_li=<h2>' . __('Prose') . '</h2>' ); ?></ul> //使用下列代碼段,可顯示出無標題并以頁面順序排列的頁面: <ul><?php wp_list_pages('sort_column=menu_order&title_li='); ?></ul> //下列代碼顯示出的頁面將按發表日期進行排列,在頁面列表項旁顯示日期。 <ul><?php wp_list_pages('sort_column=post_date&show_date=created'); ?></ul>
顯示列表頁面
//若僅希望在列表中顯示特定頁面,例如編號為35,7,26和13的頁面,可使用include參數。 <ul><?php wp_list_pages('include=7,13,26,35&title_li=<h2>' . __('Pages') . '</h2>' ); ?></ul> //顯示子頁面 //注意:即使沒有子頁面,HTML標簽也是必要的(ul或ol)。用css設置列表時需要將這一點謹記在心。 <ul><?phpwp_list_pages('title_li=&child_of='.$post->ID.'&show_date=modified&date_format=$date_format'); ?></ul> //以下代碼僅在目前頁面有子頁面(將目前頁面設為父級頁面的頁面)的情況下生成列表: <?php$children = wp_list_pages('title_li=&child_of='.$post->ID.'&echo=0');if ($children) { ?><ul><?php echo $children; ?></ul><?php } ?> //將本代碼放在側邊欄的widget區塊后,代碼將無法運行。 <?phpif($post->post_parent)$children = wp_list_pages("title_li=&child_of=".$post->post_parent."&echo=0");else$children = wp_list_pages("title_li=&child_of=".$post->ID."&echo=0");if ($children) { ?><ul><?php echo $children; ?></ul><?php } ?> //本代碼也可用在sidebar.php中,僅顯示頂級頁面。但瀏覽到包含子頁面的頁面時,僅顯示其子頁面。//瀏覽主頁時在側邊欄顯示所有頂級頁面//瀏覽沒有子頁面的頂級頁面時,顯示所有頂級頁面//瀏覽有子頁面的頂級頁面時,顯示所有子頁面及下一級頁面//瀏覽子頁面時,顯示其父級頁面下的所有子頁面和下一級頁面 <?php$output = wp_list_pages('echo=0&depth=1&title_li=<h2>Top Level Pages </h2>' );if (is_page( )) {$page = $post->ID;if ($post->post_parent) { $page = $post->post_parent;}$children=wp_list_pages( 'echo=0&child_of=' . $page . '&title_li=' );if ($children) { $output = wp_list_pages ('echo=0&child_of=' . $page . '&title_li=<h2>Child Pages</h2>');}}echo $output;?>以上就是WordPress獲取當前頁面下所有子頁面列表(含縮略圖)的方法的全部內容,希望對大家的學習和解決疑問有所幫助,也希望大家多多支持武林網。
新聞熱點
疑難解答
圖片精選