为了实现这一点,我为我的博客做了以下工作:(1)创建一个页面模板,比如“masterarcive”(2)在该页面中添加代码。(3) 此代码还包括分页
这是我的整个页面模板,其中包含我使用的完整代码:
<?php
/**
* @package WordPress
* @subpackage Default_Theme
*/
/*
Template Name: masterarchive
*/
get_header(); ?>
<div id="container">
<div id="content" role="main">
<?php
$args=array(
//\'category__in\' => array(1),
\'post_type\' => \'post\',
\'post_status\' => \'publish\',
\'showposts\' => -1,
\'caller_get_posts\'=> 1
);
$poststocount=get_posts($args);
echo \'<h2>Alphabetic Index of All \'. count($poststocount). \' Posts:</h2>\';
$args = array(\'type\' => \'alpha\', \'echo\' => 0, \'after\' => \'~\');
$archivestring = wp_get_archives($args);
$archives = preg_split(\'/[~]/\',$archivestring);
if ($archives) :
$limit = 60;
if (isset($_GET[\'page\'])) {
$page = $_GET[\'page\'];
} else {
$page = 1;
}
$start = ($page - 1) * $limit;
$range = 5;
echo \'<h2></h2>\';
echo \'<ul>\';
for ($i=$start;$i<($start + $limit);++$i) {
if ($i < sizeof($archives)) {
echo $archives[$i];
}
}
echo \'<br /><br />\'; // remove <br /><br />
echo _YOUR_paginate(sizeof($archives),$limit,$range);
echo \'</ul>\'; // remove </li></ul>
else:
echo \'<h2></h2>\';
echo \'There are no Archives to list\';
endif;?>
</div></div> <!-- added one </div> -->
<?php get_sidebar(); ?>
<?php get_footer(); ?>
<?php function _YOUR_paginate($numrows,$limit=10,$range=7) {
$pagelinks = "";
if(isset($_GET[\'page\'])){
$page = $_GET[\'page\'];
} else {
$page = 1;
}
// If query_string exists, use &page=, else use ?page= .
$currpage = $_SERVER[\'REQUEST_URI\'];
$qstring = preg_replace(\'/page=\\d+/\',\'\',$_SERVER[\'QUERY_STRING\']); // Get rid of previous page=
if ($qstring) {
$paramsep = \'&\';
} else {
$paramsep = \'?\';
}
if ($numrows > $limit) {
//$currpage = str_replace("&page=".$page,"",$currpage); // Use this for non-pretty permalink
$currpage = str_replace("?page=".$page,"",$currpage); // Use this for pretty permalink
if($page == 1){
$pagelinks .= "<span class=\\"pageprevdead\\">« PREV </span>";
}else{
$pageprev = $page - 1;
$pagelinks .= "<a class=\\"pageprevlink\\" href=\\"" . $currpage .
"{$paramsep}page=" . $pageprev . "\\">« PREV </a>";
}
$numofpages = ceil($numrows / $limit);
if ($range == "" or $range == 0) $range = 7;
$lrange = max(1,$page-(($range-1)/2));
$rrange = min($numofpages,$page+(($range-1)/2));
if (($rrange - $lrange) < ($range - 1)) {
if ($lrange == 1) {
$rrange = min($lrange + ($range-1), $numofpages);
} else {
$lrange = max($rrange - ($range-1), 0);
}
}
if ($lrange > 1) {
$pagelinks .= "<a class=\\"pagenumlink\\" " .
"href=\\"" . $currpage . "{$paramsep}page=" . 1 .
"\\"> [1] </a>";
if ($lrange > 2) $pagelinks .= " ... ";
} else {
$pagelinks .= " ";
}
for($i = 1; $i <= $numofpages; $i++){
if ($i == $page) {
$pagelinks .= "<span class=\\"pagenumon\\"> [$i] </span>";
} else {
if ($lrange <= $i and $i <= $rrange) {
$pagelinks .= "<a class=\\"pagenumlink\\" " .
"href=\\"" . $currpage . "{$paramsep}page=" . $i .
"\\"> [" . $i . "] </a>";
}
}
}
if ($rrange < $numofpages) {
if ($rrange < $numofpages - 1) $pagelinks .= " ... ";
$pagelinks .= "<a class=\\"pagenumlink\\" " .
"href=\\"" . $currpage . "{$paramsep}page=" . $numofpages .
"\\"> [" . $numofpages . "] </a>";
} else {
$pagelinks .= " ";
}
if(($numrows - ($limit * $page)) > 0){
$pagenext = $page + 1;
$pagelinks .= "<a class=\\"pagenextlink\\" href=\\"" . $currpage .
"{$paramsep}page=" . $pagenext . "\\"> NEXT »</a>";
} else {
$pagelinks .= "<span class=\\"pagenextdead\\"> NEXT »</span>";
}
}
return $pagelinks;
}
?>