There are two ways of doing this. One is slightly easier than the other.
Add After getToolbarHtml
call
If you do it after the call to getToolbarHtml
in the list.phtml then the following code will work.
<?php echo $this->getChild('product_list_toolbar')->getChild('product_list_toolbar_pager')->getNextPageUrl() ?>
This is because the pager is actually inside the toolbar and not the list, see layout xml.
<block type="catalog/product_list" name="product_list" template="catalog/product/list.phtml">
<block type="catalog/product_list_toolbar" name="product_list_toolbar" template="catalog/product/list/toolbar.phtml">
<block type="page/html_pager" name="product_list_toolbar_pager"/>
And most importantly the collection is setup in the toolbar's getPagerHtml
function:
public function getPagerHtml()
{
$pagerBlock = $this->getChild('product_list_toolbar_pager');
if ($pagerBlock instanceof Varien_Object) {
/* @var $pagerBlock Mage_Page_Block_Html_Pager */
$pagerBlock->setAvailableLimit($this->getAvailableLimit());
$pagerBlock->setUseContainer(false)
->setShowPerPage(false)
->setShowAmounts(false)
->setLimitVarName($this->getLimitVarName())
->setPageVarName($this->getPageVarName())
->setLimit($this->getLimit())
->setFrameLength(Mage::getStoreConfig('design/pagination/pagination_frame'))
->setJump(Mage::getStoreConfig('design/pagination/pagination_frame_skip'))
->setCollection($this->getCollection());
return $pagerBlock->toHtml();
}
return '';
}
Add before getToolbarHtml
call
Or if you simply want to put it anywhere in the template what you can do is set the collection using the list`s collection with the following code.
$productCollection = $this->getLoadedProductCollection();
$pagerBlock = $this->getChild('product_list_toolbar')->getChild('product_list_toolbar_pager');
$pagerBlock->setCollection($productCollection);
echo $pagerBlock->getNextPageUrl();
Mage::getBlockSingleton('page/html_pager')->getNextPageUrl()
?