Return to Snippet

Revision: 29533
at August 6, 2010 01:46 by trepmal


Updated Code
<?php				
/* prev/next links */
if ($post->post_parent == 19) { /* 19 == id of 'Rooms' page */
$exclude = implode(',',array('984'));

$toplevel = 'title_li=&depth=1&echo=0&exclude='.$exclude;
$siblings = $toplevel.'&child_of='.$post->post_parent;
if (function_exists(pause_exclude_pages)) {
 pause_exclude_pages();
 $links =  ($post->post_parent) ? wp_list_pages($siblings) : wp_list_pages($toplevel);
 resume_exclude_pages();
}
else {
 $links =  ($post->post_parent) ? wp_list_pages($siblings) : wp_list_pages($toplevel);
}

$links = array_filter(explode("</li>",$links));

foreach($links as $k=>$v) { if (strpos($v,'current_page_item') !== FALSE) { $current = $k;   } $links[$k] = $v.'</li>';}

$total = count($links)-1;   $prev = (int)$current-1; $next = $current+1;

if ($current == $total) $next = '0'; // if you're on the last page, next will be the first
if ($current == '0') $prev = $total; // if you're on the first page, prev will be the last

$prevLink = strip_tags($links[$prev],'<a>'); //remove the <li> tags
$nextLink = strip_tags($links[$next],'<a>'); //remove the <li> tags

function change_anchor_text($link, $newtext, $placement) {
	$pos1 = strpos($link, '>')+1;
	$pos2 = strpos($link, '<', 1);
	$anchortext = substr($link, $pos1, $pos2-$pos1);
	
	if($placement == 'before') {
	 return str_replace($anchortext, $newtext.' '.$anchortext, $link);
	}
	else if ($placement == 'after') {
	 return str_replace($anchortext, $anchortext.' '.$newtext, $link);
	}
	else if ($placement == 'replace') {
	 return str_replace($anchortext, $newtext, $link);
	}
	
}
$prevLinkb = $prevLink;
$prevLink = change_anchor_text($prevLink, ' &lt; View Previous Room ', 'replace'); /* link customization goes here */
$nextLink = change_anchor_text($nextLink, ' View Next Room &gt; ', 'replace');
$prepend = '';
$separator = '<a href="/lodging/" class="norm">Return to All Rooms</a>';
$separator2 = '<a href="#" class="norm">Check Availability Online</a>';

echo '<p class="pnpn">'.$prepend.$prevLink.$separator.$nextLink.'</p>';

}
/* end prev/next links */ 
?>

Revision: 29532
at August 6, 2010 01:46 by trepmal


Updated Code
<?php				
/* prev/next links */
if ($post->post_parent == 19) { /* 19 == id of 'Rooms' page */
$exclude = implode(',',array('984'));

$toplevel = 'title_li=&depth=1&echo=0&exclude='.$exclude;
$siblings = $toplevel.'&child_of='.$post->post_parent;
if (function_exists(pause_exclude_pages)) {
 pause_exclude_pages();
 $links =  ($post->post_parent) ? wp_list_pages($siblings) : wp_list_pages($toplevel);
 resume_exclude_pages();
}
else {
 $links =  ($post->post_parent) ? wp_list_pages($siblings) : wp_list_pages($toplevel);
}

$links = array_filter(explode("</li>",$links));

foreach($links as $k=>$v) { if (strpos($v,'current_page_item') !== FALSE) { $current = $k;   } $links[$k] = $v.'</li>';}

$total = count($links)-1;   $prev = (int)$current-1; $next = $current+1;

if ($current == $total) $next = '0'; // if you're on the last page, next will be the first
if ($current == '0') $prev = $total; // if you're on the first page, prev will be the last

$prevLink = strip_tags($links[$prev],'<a>'); //remove the <li> tags
$nextLink = strip_tags($links[$next],'<a>'); //remove the <li> tags

function change_anchor_text($link, $newtext, $placement) {
	$pos1 = strpos($link, '>')+1;
	$pos2 = strpos($link, '<', 1);
	$anchortext = substr($link, $pos1, $pos2-$pos1);
	
	if($placement == 'before') {
	 return str_replace($anchortext, $newtext.' '.$anchortext, $link);
	}
	else if ($placement == 'after') {
	 return str_replace($anchortext, $anchortext.' '.$newtext, $link);
	}
	else if ($placement == 'replace') {
	 return str_replace($anchortext, $newtext, $link);
	}
	
}
$prevLinkb = $prevLink;
$prevLink = change_anchor_text($prevLink, ' &lt; View Previous Room ', 'replace'); /* link customization goes here */
$nextLink = change_anchor_text($nextLink, ' View Next Room &gt; ', 'replace');
$prepend = '';
$separator = '<a href="/lodging/" class="norm">Return to All Rooms</a>';
$separator2 = '<a href="#" class="norm">Check Availability Online</a>';

echo '<p class="pnpn">'.$prepend.$prevLink.$separator.$nextLink.'</p>';

}
/* end prev/next links */ 
?>

<?php /** OLDER VERSION **/
/* prev/next links */
if ($post->post_parent == 5) { /* in this case, I only want the subnav displayed on certain child pages */
$exclude = implode(',',array('984')); //exclude this page id

$toplevel = 'title_li=&depth=1&echo=0&exclude='.$exclude;
$siblings = $toplevel.'&child_of='.$post->post_parent;
if (function_exists(pause_exclude_pages)) {
 pause_exclude_pages();
 $links =  ($post->post_parent) ? wp_list_pages($siblings) : wp_list_pages($toplevel);
 resume_exclude_pages();
}
else {
 $links =  ($post->post_parent) ? wp_list_pages($siblings) : wp_list_pages($toplevel);
}

$links = array_filter(explode("\n",$links));

foreach($links as $k=>$v) { if (strpos($v,'current_page_item') !== FALSE) { $current = $k;   } }

$total = count($links)-1;   $prev = $current-1; $next = $current+1;

if ($current == $total) $next = '0'; // if you're on the last page, next will be the first
if ($current == '0') $prev = $total; // if you're on the first page, prev will be the last

$prevLink = strip_tags($links[$prev],'<a>'); //remove the <li> tags
$nextLink = strip_tags($links[$next],'<a>'); //remove the <li> tags

function change_anchor_text($link, $newtext, $placement) {

        $pos1 = strpos($link, '>')+1;
        $pos2 = strpos($link, '<', 1);
        $anchortext = substr($link, $pos1, $pos2-$pos1);

        if($placement == 'before') {
         return str_replace($anchortext, $newtext.' '.$anchortext, $link);
        }
        else if ($placement == 'after') {
         return str_replace($anchortext, $anchortext.' '.$newtext, $link);
        }
        else if ($placement == 'replace') {
         return str_replace($anchortext, $newtext, $link);
        }

}

$prevLink = change_anchor_text($prevLink, ' &lt; Previous Room ', 'replace'); /* link customization goes here */
$nextLink = change_anchor_text($nextLink, ' Next Room &gt; ', 'replace');
$prepend = '';
$separator = ' - ';
$append = '';

echo '<p class="pnpn">'.$prepend.$prevLink.$separator.$nextLink.$append.'</p>';

}
/* end prev/next links */
?>

Revision: 29531
at July 31, 2010 06:46 by trepmal


Initial Code
<?php
/* prev/next links */
if ($post->post_parent == 5) { /* in this case, I only want the subnav displayed on certain child pages */
$exclude = implode(',',array('984')); //exclude this page id

$toplevel = 'title_li=&depth=1&echo=0&exclude='.$exclude;
$siblings = $toplevel.'&child_of='.$post->post_parent;
if (function_exists(pause_exclude_pages)) {
 pause_exclude_pages();
 $links =  ($post->post_parent) ? wp_list_pages($siblings) : wp_list_pages($toplevel);
 resume_exclude_pages();
}
else {
 $links =  ($post->post_parent) ? wp_list_pages($siblings) : wp_list_pages($toplevel);
}

$links = array_filter(explode("\n",$links));

foreach($links as $k=>$v) { if (strpos($v,'current_page_item') !== FALSE) { $current = $k;   } }

$total = count($links)-1;   $prev = $current-1; $next = $current+1;

if ($current == $total) $next = '0'; // if you're on the last page, next will be the first
if ($current == '0') $prev = $total; // if you're on the first page, prev will be the last

$prevLink = strip_tags($links[$prev],'<a>'); //remove the <li> tags
$nextLink = strip_tags($links[$next],'<a>'); //remove the <li> tags

function change_anchor_text($link, $newtext, $placement) {

        $pos1 = strpos($link, '>')+1;
        $pos2 = strpos($link, '<', 1);
        $anchortext = substr($link, $pos1, $pos2-$pos1);

        if($placement == 'before') {
         return str_replace($anchortext, $newtext.' '.$anchortext, $link);
        }
        else if ($placement == 'after') {
         return str_replace($anchortext, $anchortext.' '.$newtext, $link);
        }
        else if ($placement == 'replace') {
         return str_replace($anchortext, $newtext, $link);
        }

}

$prevLink = change_anchor_text($prevLink, ' &lt; Previous Room ', 'replace'); /* link customization goes here */
$nextLink = change_anchor_text($nextLink, ' Next Room &gt; ', 'replace');
$prepend = '';
$separator = ' - ';
$append = '';

echo '<p class="pnpn">'.$prepend.$prevLink.$separator.$nextLink.$append.'</p>';

}
/* end prev/next links */
?>

Initial URL
http://trepmal.com/scripts/previousnext-links-for-pages-in-wordpress/

Initial Description


Initial Title
Previous / Next page links for WordPress

Initial Tags
wordpress

Initial Language
PHP