Closed nicolasschabram closed 9 years ago
Ist bei mir auch so, definitiv ein Bug.
Hey @astro, ich weiß, deine Zeit ist gerade knapp, aber kannst du hier bitte zumindest mal drauf schauen und mich in die richtige Richtung schubsen? Folgendes konnte ich eingrenzen:
Problem liegt in der add_podcast_rewrite_rules
Methode (https://github.com/podlove/podlove-publisher/blob/1.10.16-alpha/plugin.php#L563), speziell folgender Block:
// Enable generic rules for pages if permalink structure doesn't begin with a wildcard
if ( "/%podcast%" == untrailingslashit( $permastruct ) ) {
// Generate custom rewrite rules
$wp_rewrite->matches = 'matches';
$wp_rewrite->extra_rules = array_merge( $wp_rewrite->extra_rules, $wp_rewrite->generate_rewrite_rules( "%podcast%", EP_PERMALINK, true, true, false, true, true ) );
$wp_rewrite->matches = '';
// Add for WP_Query
$wp_rewrite->use_verbose_page_rules = true;
// Use standard mode
} else {
$wp_rewrite->add_permastruct( "podcast", $permastruct, false, EP_PERMALINK );
}
Im Fall von /%category%/%postname%
ist der else-Block aktiv und scheint mir alles zu brechen. Ersetze ich die if-Klausel durch ein generischeres if ( stristr($permastruct, "/%podcast%") !== FALSE ) {
, gehen zwar die Feeds wieder, aber die Episoden-Links sind nicht mehr pretty (was mir logisch erscheint, da es keine matchende Regel mehr gibt). Ich habe versucht, mit der extra_rules
-Zeile zu spielen, aber erfolglos.
Jeder Hinweis ist willkommen. Danke! :)
Ich kann dieses Perl nicht lesen. Wolltest du vielleicht jemand anderes herzu holen?
Ich glaube, hier war die WordPress Feuerwehr @gglnx gemeint.
Uops, sorry! Da ist mir wohl eine Hirnwindung schief gewickelt. Der Tim hat meine Intention richtig erkannt, danke für die Aufklärung :)
landet im nächsten update
Ihr seid die Besten, vielen Dank! :)
Für die Nachwelt: Das Problem war, dass $wp_rewrite->add_permastruct
die Regeln für Podcast-Episode ganz an den Anfang aller Rewrite-Regeln gepackt hat. Damit hat /%category%/%podcast%
auch bei /feed/mp3/
gegriffen. Jetzt sorgt add_podcast_episode_rules_to_post_rules
für den Rewrite-Regelfall (also wenn die Permalink-Struktur nicht /%podcast%/
ist, dort haben wir ja ein getrenntes Handling), dass die Regeln auch an die Stelle, wo auch die für normale Beiträge sind, gepackt werden. Damit ist die richtige Reihenfolge gewährleistet.
Nachwelt dankt. Was für ein Voodoo.
Hey,
mir ist gerade aufgefallen, dass mein Podcast-Feed bei der folgenden Permalink-Struktur nicht mehr erreichbar ist (404): /%category%/%postname% Mit /%postname% funktioniert es.
Liegt es an mir oder ist das ein Bug?
Beste Grüße, Nicolas