Catch 404 nach dem Ändern der Permalink-Struktur von /% postname% / in /% category% /% postname% /


7

Ich habe vor einiger Zeit eine Website erstellt und nach einigen Tagen wurden einige Beiträge von Suchmaschinen indiziert. Heute habe ich die Permalink-Struktur von /%postname%/auf geändert /%category%/%postname%/.

Danach erscheint ein, wenn Leute von Suchmaschinen auf meine Website kommen 404 page not found error. Ich möchte alle alten URLs ohne 404-Fehler in die neue Kategorie-Basis-URL ändern.

Wie kann ich es tun?
Ich benutze übrigens das Yoast Plugin.


Haben Sie versucht, Ihre Umschreiberegeln zu löschen?
— Manny Fleurmond

Antworten:


7

Dies geschieht, weil WordPress Ihren alten Beitragsnamen jetzt als Kategorienamen liest - und diese Kategorie nicht finden kann.

Lösung: Filtern Sie 404_templateund versuchen Sie, den Beitrag und seinen Permalink zu finden. Dann umleiten.

<?php  # -*- coding: utf-8 -*-
/* Plugin Name: Redirect to category */

add_filter( '404_template', 't5_redirect_to_category' );

function t5_redirect_to_category( $template )
{
    if ( ! is_404() )
        return $template;

    global $wp_rewrite, $wp_query;

    if ( '/%category%/%postname%/' !== $wp_rewrite->permalink_structure )
        return $template;

    if ( ! $post = get_page_by_path( $wp_query->query['category_name'], OBJECT, 'post' ) )
        return $template;

    $permalink = get_permalink( $post->ID );

    wp_redirect( $permalink, 301 );
    exit;
}

Vielen Dank, dass Sie dies geteilt haben. Es hat mir so viel Zeit gespart, 301 Weiterleitungen zu schreiben!
— Zach Russell

Hallo, wo soll ich die obige Funktion hinzufügen? separate Datei? oder innerhalb von functions.php? Ich benutze das Genesis-Thema.
— JDesigns

@ Jay Ein separates Plugin. Aus diesem Grund enthält der Code einen Plugin-Header. :)
— Fuxia

0

Sie müssen 301 Weiterleitungen von Ihren alten Seiten-URLs zu den neuen hinzufügen.

Dieses Plugin sollte das erreichen, was Sie wollen: http://wordpress.org/extend/plugins/redirection/

Da Änderungen an Ihren Permalinks erkannt und automatisch Weiterleitungen hinzugefügt werden, müssen Sie zu Ihrer alten Permalink-Struktur zurückkehren, das Plugin aktivieren und dann Ihre Permalinks auf die neue Struktur aktualisieren.

Hoffe das hilft.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.