it-swarm.com.de

Wordpress-URL-Weiterleitung

Ich habe eine WordPress-Seite unter http://www.mysiteurl.com/pagename/ und möchte, dass eine URL des Formulars http://www.mysiteurl.com/pagename/{any string here} meine ursprüngliche Seite umleitet oder anzeigt. Wie mache ich das? Gibt es ein WordPress-Plugin, das mir dies einfach macht?

1
Cameron

Das ist durchaus möglich. Zunächst müssen Sie festlegen, dass pagename/{customString} als die Seite selbst aufgelöst wird anstatt als 404, und dann können Sie entscheiden, ob Sie den URI unverändert lassen und den Seiteninhalt bereitstellen oder an eine andere Stelle zurückleiten möchten, z. B. einen Seiten-Permalink (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;
    }
});

Wenn Sie die Weiterleitung nicht wünschen, entfernen Sie den in template_redirect (ab Zeile: 15) eingebundenen Code. Um diese benutzerdefinierte Zeichenfolge ({any string here}) abzurufen, rufen Sie einfach get_query_var( "pageParam" ) auf.

Hoffentlich hilft das.

2
Samuel Elh