WordPress

Redirects zu anderen Beiträgen oder URLs in WordPress implementieren

Die Methode zum Umleiten in PHP und die Methode zum Umleiten von Beiträgen oder Seiten zu anderen URLs in WordPress sind leicht unterschiedlich. Dieser Artikel stellt die Methode für URL-Redirects in WordPress und Vorsichtsmaßnahmen beim Tun vor. Um in PHP umzuleiten, header('Location ' . $url, true, ($permanent === true) ? 301...

Shou Arisaka
2 Min. Lesezeit
6. Nov. 2025

Die Methode zum Umleiten in PHP und die Methode zum Umleiten von Beiträgen oder Seiten zu anderen URLs in WordPress sind leicht unterschiedlich. Dieser Artikel stellt die Methode für URL-Redirects in WordPress und Vorsichtsmaßnahmen beim Tun vor.

Um in PHP umzuleiten,


// redirect to top page by some reason
function Redirect($url, $permanent = false)
{
    if (headers_sent() === false)
    {
        header('Location: ' . $url, true, ($permanent === true) ? 301 : 302);
    }

    exit();
}

Redirect('https://example.xyz/', 301);

Dies sollte funktionieren.

Referenz: How to make a redirect in PHP? - Stack Overflow

In WordPress jedoch, wenn Sie es so machen:

if ( get_the_ID() == 107 ){

    Redirect('https://example.xyz/', 301);

}

Dies ist unmöglich. Sie können einen bestimmten Beitrag nicht mit get_the_ID identifizieren und dann eine PHP-Umleitung durchführen.

Als WordPress-Spezifikation wird header.php geladen, nachdem der Header geladen wurde. Es ist im Wesentlichen statisches PHP. Andererseits wird functions.php vor dem Laden des Headers ausgeführt, es ist dynamisches PHP, das in das System und die Datenbank eingreifen kann.

get_the_ID kann nur in statischem PHP verwendet werden. Dies liegt daran, dass get_the_ID auf der functions.php-Stufe noch nicht verfügbar ist. Und Redirect() enthält header(). Die Funktion header() kann nur in dynamischem PHP verwendet werden.

Mit anderen Worten, get_the_ID und header() können nicht zusammen verwendet werden. Wenn get_the_ID zuerst geladen würde, gäbe es noch Raum, aber da header(), das Redirects durchführt, zuerst operiert, ist es unmöglich.

Diese Art von Sache passiert gelegentlich bei der Arbeit mit WordPress. Es ist gut, sich daran zu erinnern.

Zurück zum Thema, was machen Sie also?

In header.php,

entweder in HTML tun,

if ( get_the_ID() == 107 ){
    echo '   <meta http-equiv="refresh" content="0; URL=https://example.xyz/">  ' ;

}

Oder in Javascript tun.

if ( get_the_ID() == 107 ){
    echo '<script type="text/javascript">
    window.location.href = "https://example.xyz/"
</script>' ; 
}

Javascript-Redirects sind schnell, können aber mit curl erfasst werden. Es ist besser, Redirects, die nicht vom Server durchgeführt werden, als lediglich scheinbare Redirects zu betrachten.

Diesen Artikel teilen

Shou Arisaka 6. Nov. 2025

🔗 Links kopieren