Wordpress URL redirect

时间:2016-11-14 作者:Cameron

我有一个wordpress页面http://www.mysiteurl.com/pagename/ 我想要表单的任何URLhttp://www.mysiteurl.com/pagename/{any string here} 重定向或显示我的原始页面。我该怎么做呢?有没有一个wordpress插件可以让这对我来说很简单?

1 个回复
最合适的回答,由SO网友:Ismail 整理而成

这是很有可能的。首先,制作pagename/{customString} 解析为页面本身而不是404,然后,您可以自由决定是保持URI不变并提供页面内容,还是重定向回某个位置,例如页面永久链接(get_the_permalink() ):

add_action( "init", function(){
    $pagename = "pagename"; // page slug
    add_rewrite_rule(
        sprintf(\'^%s/([^/]*)/?\', $pagename),
        sprintf(\'index.php?pagename=%s&pageParam=$matches[1]\', $pagename),
        \'top\'
    );
});

add_filter( "query_vars", function( $vars ){
    $vars[] = "pageParam";
    return $vars;
});

add_action( "template_redirect", function(){
    if ( $param = get_query_var( "pageParam" ) ) {
        /* make sure param is not for comments pagination or smth similar */ 
        wp_redirect( get_the_permalink(), 301 );
        exit;
    }
});
如果不希望重定向,请删除挂接到中的代码template_redirect (截至第15行)。要获取自定义字符串({any string here} ), 简单呼叫get_query_var( "pageParam" ).

希望这有帮助。