好的,首先,在主题文件夹中创建一个php文件,并给它起一个不会与任何本机主题模板文件archive冲突的名称。php,索引。php等。。。(给它起一个唯一的名字,比如page-list-by-month.php).
将以下代码添加到该文件中。
<?php
/**
* Template Name: Pages by Month
*/
get_header();
?>
<!-- Your opening outer HTML -->
<?php
$args = array(
\'post_type\' => \'page\',
\'orderby\' => \'date\',
\'order\' => \'asc\',
\'nopaging\' => 1,
\'post_parent\' => 146 // <--- Adjust this to the appropriate parent
);
$data = array();
query_posts( $args );
if( have_posts() ) :
while( have_posts() ) : the_post();
$date = explode( \'%\', get_the_date( \'Y%m\' ) );
$year = $date[0];
$month = $date[1];
$data[$year][$month][] = get_the_ID();
endwhile;
endif;
// testing
// print \'<pre>\';print_r( $data );print \'</pre>\';
foreach( $data as $year => $months ) {
foreach( $months as $month => $page_ids ) {
echo date( \'F\', mktime( 0, 0, 0, $month ) ) . \' 2011<br />\';
foreach( $page_ids as $page_id )
echo \'<a href="\' . apply_filters( \'the_permalink\', get_permalink( $page_id ) ) . \'">\' . apply_filters( \'the_title\', get_the_title( $page_id ) ) . \'</a><br />\';
}
}
?>
<!-- Your closing outer HTML -->
<?php //get_sidebar(); ?>
<?php get_footer(); ?>
保存文件。
现在,创建一个页面,并在页面属性元框中选择Pages by Month模板,您为内容和标题输入的内容并不重要,尽管您为该页面提供的标题将决定URL,因此请考虑您希望该特殊页面出现的位置,并使用适合该位置的标题。
示例标题->我的页面存档=http://example.com/my-page-archive
创建页面并附加模板后,即是如此。。
NOTE: 确保调整post_parent
参数数组中的值,并确保在指定的位置添加适当的HTML(标记将根据主题而有所不同,因此我将其排除在示例之外)。
希望有帮助:)(哦,马克就是我——当我不在我的普通电脑旁的时候)。。