wake-up-neo.com

Erstellen Sie eine WordPress-Seite, die auf eine andere URL umleitet

Ich wollte eine neue WordPress-Seite erstellen, die eigentlich ein Link zu einer anderen Seite ist. Das Ziel ist, dass die Seite in einer Liste meiner Seiten angezeigt wird, der Web-Benutzer jedoch tatsächlich an die Ziel-URL gesendet wird.

Angenommen, ich möchte eine Seite einschließen, die "Meine Fotos" anzeigt, sie aber tatsächlich an Flickr weiterleitet. 

Ich schätze, eine Möglichkeit, dies zu erreichen, ist die Verwendung einer benutzerdefinierten Vorlagenseite mit einer Umleitungsanweisung in PHP, aber leider bin ich ein Neuling in PHP und kenne mich nicht aus, wie dies erreicht werden kann.

24
Dscoduc

Sie können dies auf zwei Arten erreichen, die beide durch Bearbeiten Ihrer Vorlagendateien ausgeführt werden müssen. 

Der erste ist, einfach einen HTML-Link zu Ihrer Navigation hinzuzufügen, wo immer er angezeigt werden soll.

Die zweite (und meine Vermutung, nach der Sie suchen) ist das Erstellen einer neuen Seitenvorlage. Dies ist nicht allzu schwierig, wenn Sie eine neue .php-Datei in Ihrem Design-/Vorlagenverzeichnis erstellen können. Etwas wie der folgende Code sollte funktionieren:

<?php /*  
Template Name: Page Redirect
*/ 

header('Location: http://www.nameofnewsite.com');
exit();

?>

Der Name der Vorlage ist das, was Sie auch festlegen möchten, und die URL in der Header-Funktion ist die neue URL, an die Sie einen Benutzer weiterleiten möchten. Nachdem Sie den obigen Code an Ihre Anforderungen angepasst haben, speichern Sie ihn in einer PHP-Datei in Ihrem aktiven Designordner unter dem Namen der Vorlage. Wenn Sie also den Namen Ihrer Vorlage "Seitenumleitung" belassen, nennen Sie die PHP-Datei page-redirect.php. 

Melden Sie sich nach dem Speichern bei Ihrem WordPress-Backend an und erstellen Sie eine neue Seite. Sie können dem Hauptteil einen Titel und Inhalt hinzufügen, wenn Sie möchten. Wichtig ist jedoch, dass auf der rechten Seite eine Dropdown-Option angezeigt wird, in der Sie auswählen können, welche Seitenvorlage verwendet werden soll. Die Standardeinstellung wird angezeigt zuerst. In dieser Dropdown-Liste sollte der Name der neuen Vorlagendatei enthalten sein, die verwendet werden soll. Wählen Sie die neue Vorlage aus, veröffentlichen Sie die Seite, und Sie sollten golden sein.

Sie können dies auch dynamisch tun, indem Sie den Abschnitt Benutzerdefinierte Felder unter dem Body-Editor verwenden. Wenn Sie interessiert sind, lassen Sie es mich wissen und ich kann den Code für diesen Typen in einer neuen Antwort einfügen.

36
Schoffelman

Ich habe festgestellt, dass diese Probleme am besten auf Serverebene gelöst werden können. Haben Sie Zugriff auf eine .htaccess-Datei, in der Sie eine Umleitungsregel platzieren könnten? Wenn ja:

RedirectPermanent /path/to/page http://uri.com

Diese Weiterleitung wird auch als Antwort auf "301 dauerhaft verschoben" ausgeführt, um anzuzeigen, dass die Flickr-Seite (beispielsweise) der permanente URI für die alte Seite ist.

Wenn dies nicht möglich ist, können Sie eine benutzerdefinierte Seitenvorlage für jede fragliche Seite erstellen und den folgenden PHP - Code oben in der Seitenvorlage hinzufügen (eigentlich ist dies alles, was Sie in der Vorlage benötigen:

header('Location: http://uri.com, true, 301');

Weitere Informationen zu PHP - Headern .

11
Jason Leveille

Verwenden Sie alternativ einen Filter. 

Erstellen Sie eine leere Seite in Ihrem WordPress-Blog, die entsprechend dem gewünschten Namen benannt wurde. Beachten Sie die post_id. Erstellen Sie dann einen Filter, der den Permalink ändert.

add_filter('get_the_permalink','my_permalink_redirect');
function my_permalink_redirect($permalink) {
    global $post;
    if ($post->ID == your_post_id_here) {
        $permalink = 'http://new-url.com/pagename';
    }
    return $permalink;
}

Auf diese Weise wird die URL in der Seite korrekt angezeigt. Es sind keine lustigen Weiterleitungen erforderlich.

Wenn Sie dies häufig tun müssen, sollten Sie über die benutzerdefinierten postmeta-Felder nachdenken, um einen postmeta-Wert für "offsite_url" oder ähnliches zu definieren. Dann können Sie nach Bedarf Seiten erstellen, den Wert "offsite_url" eingeben und einen Filter verwenden Wie oben beschrieben, anstatt die post_id zu überprüfen, prüfen Sie, ob die erforderliche Postmeta vorhanden ist, und ändern Sie den Permalink nach Bedarf.

7
Gipetto

Ich bin nicht mit Wordpress-Vorlagen vertraut, aber ich gehe davon aus, dass Header von WP an den Browser gesendet werden, bevor Ihre Vorlage überhaupt geladen wird. Aus diesem Grund ist die übliche Umleitungsmethode von:

header("Location: new_url");

funktioniert nicht Wenn es nicht möglich ist, das Senden von Kopfzeilen durch eine Vorlage zu erzwingen, bevor WP irgendetwas tut, müssen Sie ein bisschen Javascript verwenden:

<script language="javascript" type="text/javascript">
document.location = "new_url";
</script>

Fügen Sie das in den Abschnitt ein und es wird ausgeführt, wenn die Seite geladen wird. Diese Methode ist nicht sofort verfügbar und funktioniert auch nicht für Personen mit deaktiviertem Javascript.

4
BraedenP

Verwenden Sie das "raw" -Plugin https://wordpress.org/plugins/raw-html/ Dann ist es so einfach wie folgt:

[raw]
<script>
window.location = "http://www.site.com/new_location";
</script>
[/raw]
1
Jeroenv3

sie können dies einfach tun, ohne zu verstopfen

echo 'window.location.replace (" http://www.yourweburl.com ")';

Aber ich mag diese Weiterleitung nicht Ich mag es, mit einem Header weiterzuleiten !!

Verwenden Sie es als vorübergehende Lösung

0
jerryurenaa

Ich habe ein Plugin gefunden, das mir geholfen hat, dies innerhalb von Sekunden zu tun, ohne Code zu bearbeiten:

https://wordpress.org/plugins/quick-pagepost-redirect-plugin/

Ich habe es hier gefunden: http://premium.wpmudev.org/blog/wordpress-link-title-external-url/

0
Ryan

Es gibt drei Möglichkeiten, dies zu tun:

  1. Durch Ändern Ihres 404.php-Codes.
  2. Mit WordPress-Plugins.
  3. Durch Bearbeiten Ihrer .htaccess-Datei.

Vollständiges Tutorial unter http://bornvirtual.com/wordpress/redirect-404-error-in-wordpress/906/

0
Mazhar