<?php
/*
Plugin Name: Next-Previous Page
Version: 0.3
Plugin URI: http://wordpress.org/support/topic/43071
Description: Next and Previous Page navigation; by post date or Page (menu) order.
Author: Kaf Oseo
Author URI: http://szub.net
Copyright (c) 2005, 2007 Kaf Oseo (http://szub.net)
Next-Previous Page is released under the GNU General Public
License (GPL) http://www.gnu.org/licenses/gpl.txt
This is a WordPress plugin (http://wordpress.org).
~Changelog:
0.3 (Oct-30-2007)
Update to support WordPress 2.3.
0.2 (Aug-28-2005)
Added feature for organizing next/previous Pages by menu order.
*/
function next_page($orderby='post_date', $link='Next Page: %', $before='', $after='', $title_attr='Next Page: %') {
global $wpdb, $wp_query, $wp_version;
if(is_page()) {
$post = $wp_query->post;
if(('page_order' == $orderby) || ('menu_order' == $orderby)) {
$orderby = 'menu_order';
$typeselect = "menu_order > '$post->menu_order'";
} else {
$orderby = 'post_date';
$typeselect = "post_date > '$post->post_date'";
}
$pagestatus = ($wp_version >= 2.3) ? "post_type = 'page' AND post_status = 'publish'" : "post_status = 'static'";
$nextpage = @$wpdb->get_row("SELECT ID, post_title FROM $wpdb->posts WHERE $typeselect AND $pagestatus AND ID != $post->ID ORDER BY $orderby ASC LIMIT 0, 1");
if ($nextpage) {
$title = apply_filters('the_title', $nextpage->post_title);
$link = str_replace('%', $title, $link);
$title_attr = str_replace('%', $title, $title_attr);
echo $before.'<a href="'.get_permalink($nextpage->ID).'"';
if($title_attr)
echo ' title="'.$title_attr.'"';
echo '>'.$link.'</a>'.$after;
}
}
}
function previous_page($orderby='post_date', $link='Previous Page: %', $before='', $after='', $title_attr='Previous Page: %') {
global $wpdb, $wp_query, $wp_version;
if(is_page()) {
$post = $wp_query->post;
if(('page_order' == $orderby) || ('menu_order' == $orderby)) {
$orderby = 'menu_order';
$typeselect = "menu_order < '$post->menu_order'";
} else {
$orderby = 'post_date';
$typeselect = "post_date < '$post->post_date'";
}
$pagestatus = ($wp_version >= 2.3) ? "post_type = 'page' AND post_status = 'publish'" : "post_status = 'static'";
$lastpage = @$wpdb->get_row("SELECT ID, post_title FROM $wpdb->posts WHERE $typeselect AND $pagestatus AND ID != $post->ID ORDER BY $orderby DESC LIMIT 0, 1");
if ($lastpage) {
$title = apply_filters('the_title', $lastpage->post_title);
$link = str_replace('%', $title, $link);
$title_attr = str_replace('%', $title, $title_attr);
echo $before.'<a href="'.get_permalink($lastpage->ID).'"';
if($title_attr)
echo ' title="'.$title_attr.'"';
echo '>'.$link.'</a>'.$after;
}
}
}
?>