重定向WordPress模板中的重复页面

时间:2016-12-15 22:02:10

标签: php wordpress redirect

这就是我所在的地方:

我有一个模板(page-compare.php),它使用查询变量获取2个其他页面并比较它们的内容。

看起来像这样: http://example.com/compare/?card=3432&vs=454

如果我以相反的顺序传递id,我会得到一个重复的页面,因为它有相同的ID。

我的意思是:

http://example.com/compare/?card=3432&vs=454

http://example.com/compare/?card=454&vs=3432

是一样的。

我希望能够重定向 http://example.com/compare/?card=454&vs=3432http://example.com/compare/?card=3432&vs=454

因此该函数应该寻找更大的id并将其放在第一位。

之后,如果可能的话,我想将其重定向到更友好的SEO网址,例如: http://example.com/page-with-bigger-id-slug-vs-page-with-smaller-id-slug

我通过直接链接到页面或使用带有表单的$ _GET来获取两个页面ID,这是我到目前为止在页面中的内容,但它不起作用。

    if($card < $vs) {
    function rewrite_switch_ids() {
    global $card;
    global $vs;
        add_rewrite_rule(
            '^compare/([^/]*)/([^/]*)/?',
            '/compare/?card=matches[1]&vs=$matches[2]',
            'top'
        );
    }
    rewrite_switch_ids();
}

非常感谢任何帮助!

如果可能的话,我真的想在模板文件上这样做。

谢谢(:

编辑:

我尝试了一种目前有效的不同方法,虽然我对此并不满意:

   <?php if ($cardOld < $vsOld) {
        $url = get_site_url();
        $url = $url . '/compare/?card=' . $card . '&vs=' . $vs;?>
    <script type="text/javascript">
    function Redirect(){
        window.location="<?php echo $url; ?>";
    }
    Redirect();
    </script>
    <?php } ?>

这会使用javascript将用户重定向到正确的页面,对于搜索引擎,我已使用规范传递了ID较大的最终网址。

我不太喜欢这个解决方案,但它是我能想到的最好的。

如果有其他人可以帮助我以更好的方式解决它,那将是非常好的,谢谢!

0 个答案:

没有答案