it-swarm.com.de

Relative statt absolute Links in Seiten?

Ich habe mein Blog unter blog.mydomain.com. Ich verwende Seiten für einige statische Inhalte, auf die von einer anderen Unterdomäne aus zugegriffen werden muss. careers.mydomain.com zeigt also WordPress-Inhalte von blog.mydomain.com/careers an.

Mein Problem ist, dass alle Links auf der Seite immer noch auf blog.mydomain.com verweisen. Gibt es eine Möglichkeit, WordPress zu bitten, relative Links zu verwenden? Oder eine Möglichkeit, die baseURL für Seiten zu ändern?

1
mrtsherman

Es gibt einen Filter, post_link, den Permalinks passieren, bevor sie von get_permalink in wp-includes/link-template.php zurückgegeben werden. Mit diesem Filter können Sie die Links ändern.

Beachten Sie jedoch, dass das relative Erstellen aller Permalinks in bestimmten Kontexten unbeabsichtigte Konsequenzen haben kann, z. Möglicherweise möchten Sie keine relativen Links, wenn is_feed() == true.

Möglicherweise erkennt der post_link-Filter nicht alle URLs, die Sie ändern müssen. In diesem Fall können Sie den home_url-Filter ausprobieren, der eine viel breitere Wirkung hat.

Eine andere Möglichkeit (meine Lieblingsmöglichkeit) ist die Verwendung der Ausgabepufferung, um die Links zu relativieren. (Beispiel unten.)

Aus Sicherheitsgründen können Sie die Links nur bei Bedarf ändern. Ich weiß nicht, wie Sie den Inhalt vom eigentlichen Blog in die statische Unterdomäne bringen, aber wenn Sie HTTP-Anfragen verwenden, können Sie ein Abfrage-Argument hinzufügen: ?rlz und danach in Ihrem Theme/Plugin danach suchen.

if ( isset($_GET['rlz']) ) {
    function my_ob_handler($HTML) {
        return str_replace( home_url('/'), '/', $HTML );
    }
    ob_start( 'my_ob_handler' );
}
2
Andy