这就是我所在的地方:
我有一个模板(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=3432 至 http://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较大的最终网址。
我不太喜欢这个解决方案,但它是我能想到的最好的。
如果有其他人可以帮助我以更好的方式解决它,那将是非常好的,谢谢!