webentwicklung-frage-antwort-db.com.de

Verwenden Sie add_rewrite_rule (), um zur Startseite umzuleiten

Ich verwende eine statische Seite für meine Startseite. Es ist eine benutzerdefinierte Vorlage. In meiner benutzerdefinierten Vorlage verwende ich WP_Query (), um eine Liste der Beiträge anzuzeigen. Ich habe auch eine benutzerdefinierte Taxonomie namens "Types", die ich für meine Posts verwende.

Ich verwende add_rewrite_rule (), um http://example.com/types/example zu meiner statischen Startseite umzuleiten. Mein Umschreiben sieht so aus:

add_rewrite_rule('^types/([^/]*)/?', 'index.php?page_id=24&type=$matches[1]', 'top'); 

Das Umschreiben "funktioniert", leitet aber zu http://example.com weiter. Wenn ich die statische Startseite in WordPress deaktiviere, funktioniert die Umleitung einwandfrei.

Ist es möglich, add_rewrite_rule () mit einer statischen WordPress-Startseite zu verwenden?

1
Ryan M

In diesem Thread wurde die Lösung gefunden: So verhindern Sie, dass das Standard-Home eine statische Seite überschreibt

Deaktivieren Sie einfach die kanonische Weiterleitung für die Startseite:

function disable_canonical_redirect_for_front_page( $redirect ) {
    if ( is_page() && $front_page = get_option( 'page_on_front' ) ) {
        if ( is_page( $front_page ) )
            $redirect = false;
    }

    return $redirect;
}
add_filter( 'redirect_canonical', 'disable_canonical_redirect_for_front_page' );
1
user1383029