1
我在產品視圖(view.phtml)中實現了「上一個/下一個」按鈕,它工作正常。唯一的問題是,它也試圖顯示產品的狀態:「禁用」。這導致404未找到頁面。Magento - 產品頁面中的上一個和下一個產品鏈接(檢查產品狀態)
任何解決方法/修復此?
這是我的代碼:
<?php // Previous and Next product links in product page
$_product = $this->getProduct();
if (!$_product->getCategoryIds())
return; // Don't show Previous and Next if product is not in any category
$cat_ids = $_product->getCategoryIds(); // get all categories where the product is located
$cat = Mage::getModel('catalog/category')->load($cat_ids[0]); // load first category, you should enhance this, it works for me
$order = Mage::getStoreConfig('catalog/frontend/default_sort_by');
$direction = 'asc'; // asc or desc
$category_products = $cat->getProductCollection()->addAttributeToSort($order, $direction);
$category_products->addAttributeToFilter('status', 1); // 1 or 2
$category_products->addAttributeToFilter('visibility', 4); // 1.2.3.4
$cat_prod_ids = $category_products->getAllIds(); // get all products from the category
$_product_id = $_product->getId();
$_pos = array_search($_product_id, $cat_prod_ids); // get position of current product
$_next_pos = $_pos + 1;
$_prev_pos = $_pos - 1;
// get the next product url
if (isset($cat_prod_ids[$_next_pos])) {
$_next_prod = Mage::getModel('catalog/product')->load($cat_prod_ids[$_next_pos]);
} else {
$_next_prod = Mage::getModel('catalog/product')->load(reset($cat_prod_ids));
}
// get the previous product url
if (isset($cat_prod_ids[$_prev_pos])) {
$_prev_prod = Mage::getModel('catalog/product')->load($cat_prod_ids[$_prev_pos]);
} else {
$_prev_prod = Mage::getModel('catalog/product')->load(end($cat_prod_ids));
}
?>
任何幫助,將不勝感激。
謝謝
請在查看頁面上將此代碼用於上一個下一個產品。 http://cmsblogheart.wordpress.com/2014/01/30/previousnext-product-in-magento/ –