it-swarm.com.de

Benutzerdefinierte Post-Typ-Permalinks, die aufgrund einer Fehlerbehebung in Version 3.1 nicht funktionieren

Deshalb habe ich gerade eine Site auf 3.1 aktualisiert, die verschiedene benutzerdefinierte Post-Typen verwendet.

Als ich die Seite erstellt hatte, war mir noch nicht aufgefallen, dass der Parameter $post_type für register_post_type in Kleinbuchstaben geschrieben sein muss! (Es war im Codex nicht gut geschrieben, aber jetzt ist es fett ). http://codex.wordpress.org/Function_Reference/register_post_type#Parameters

Meine benutzerdefinierten Beitragstypen wurden mit einem Großbuchstaben registriert, zum Beispiel "Mieten" anstelle von "Mieten". Dies wurde in 3.1 behoben, so dass alle Posts, die mit Großbuchstaben registriert wurden, im hinteren und vorderen Bereich vollständig unterbrochen waren.

Ich konnte in die Funktion zurückkehren und sie in Kleinbuchstaben ändern und dann eine andere Funktion aufrufen, um die Datenbank mit dem neuen Namen zu aktualisieren, bevor sie ausgelöst wird, dank eines Beitrags auf wordpress.org von dennis_f.

Hier neue Funktion

if(!get_option('custom_type_updated')){
global $wpdb;
$wpdb->query("UPDATE $wpdb->posts SET post_type = 'custom-rental' WHERE post_type = 'Custom-Rental'");
update_option('custom_type_updated','true');
}

und hier ist das Register in Kleinbuchstaben umgeschrieben

// Custom page template for rentals      -----------------
function Rental_register_post_type() {
    register_post_type( 'custom-rental', array(
        'public'        => true,
        'can_export'    => true,
        'has_archive'   => 'Rentals',
        'rewrite'       => true,
        'supports' => array(
                ** bunch of supports stuff
            ),
        'labels' => array(
            **bunch of labels
            )
        )
    );
}
add_action( 'init', 'Rental_register_post_type', 0 );

Dies hat das Hauptproblem von defekten benutzerdefinierten Beitragstypen behoben, ABER das Problem, dass jetzt eine benutzerdefinierte Permalink-Struktur verwendet wird, unterbricht den benutzerdefinierten Beitragstyp "Mieten", nur die Standardeinstellung funktioniert.

Zum Beispiel funktioniert www.example.com/?custom-rental=7-bedrooms einwandfrei, aber es funktioniert keine benutzerdefinierte Permalink-Struktur. Ich habe jeden Typ ausprobiert und den .htaccess-Wert gelöscht und nur einen 404-Wert zurückgegeben.

Irgendwelche Ideen?

2
Wyck

Um dies zu vermeiden, fügen Sie einfach flush_rewrite_rules( false ); nach Ihrer register_post_type-Funktion hinzu. Sie können hier mehr darüber lesen http://en.bainternet.info/2011/custom-post-type-getting-404-on-permalinks

2
Bainternet