页面编号在PHP / Magento中的分页期间在URL中消失

时间:2016-03-23 15:38:53

标签: magento pagination

: - )

我目前正致力于通过添加 rel =“prev” rel =“next”链接来使类别页面SEO友好。该页面分为多个页面,每页有12个产品 - 带有“页面菜单栏”,就像正常的分页一样。我跟着this tutorial。如果我输入网址,则一切正常: examplesite.com/tables.html?ajaxcatalog=true&p=2 (源代码包含rel =“prev”和rel =“next “链接到正确的页码。”

但是 - 如果我在菜单栏中单击页码(在页面菜单栏中),例如“2”。正在打开的页面是 examplesite.com/tables.html?ajaxcatalog=true& ,如果我检查,即使通过buttom / link的href =“”,也不包含“p = 2”它。

我真的无法弄清楚为什么页码不会显示在网址中。希望你能帮我!我需要url中的数字,以便在源代码中显示正确的prev和next链接。

奇怪的是 - 如果我输入链接 examplesite.com/tables.html?ajaxcatalog=true&amp%3B&p=2 并在页面上点击,页码保持不变在那里 - 一切正常运作!

如何创建上一个链接(我所在页面之前的一页)的示例:

<?php if (!$this->isFirstPage()): ?>
        <li>
            <a class="previous<?php if(!$this->getAnchorTextForPrevious()): ?> i-previous<?php endif;?>" href="<?php echo $this->getPreviousPageUrl() ?>" title="<?php echo $this->__('Previous') ?>">

getPreviousPageUrl()确实找到了正确的网址。点击链接会发生一些事情 - 这会使页码消失。

我正在使用Magento ver。 1.9.2.4和Smartvave的主题波尔图。

1 个答案:

答案 0 :(得分:1)

以下是我申请的解决方案: 在smartwave porto中查找此文件( ajax.phtml ),就我的情况而言,它位于此处:

  

\应用\设计\前端\的SmartWAVE \波尔图\模板\的SmartWAVE \ ajaxcatalog \ ajax.phtml

在该文件中找到此行

  

&#34; url.replace(page_param,&#34;&#34;);&#34;

160 369 附近的某处。并在两个位置改变它。你的分页会起作用:)

  

&#34; url.replace(page_param,page_param);&#34;

我在你需要改变这条线的地方附上了这块。

var hist = url;
                        if(url.indexOf("p=") > -1){
                            var len = url.length-url.indexOf("p=");
                            var str_temp = url.substr(url.indexOf("p="),len);
                            var page_param = "";
                            if(str_temp.indexOf("&") == -1){
                                page_param = str_temp;
                            } else {
                                page_param = str_temp.substr(0,str_temp.indexOf("&"));
                            }
                            hist = url.replace(page_param,""); /* Change here !! */
                        }