Ich erstelle eine Wordpress-Site mit mehreren benutzerdefinierten Beitragstypen. Jeder Beitragstyp ist ein anderes Magazin. Ich habe auch benutzerdefinierte Metafelder für ein Magazinjahr und eine Ausgabe.
Ich hätte gerne URLs (verwendet archive.php):
http://my_site/magazine/name/
http://my_site/magazine_name/year/
http://my_site/magazine_name/year/issue/
Ich habe es per Code gemacht:
function magazine_rewrite_tag() {
add_rewrite_tag('%issue_year%', '([0-9]{4})');
add_rewrite_tag('%issue%', '([0-9])');
}
add_action('init', 'magazine_rewrite_tag', 10, 0);
und:
function magazine_rewrite_rules() {
add_rewrite_rule('^([a-z]+)/([0-9]{4})/([0-9])?', 'index.php?post_type=$matches[1]&issue_year=$matches[2]&issue=$matches[3]', 'top');
add_rewrite_rule('^([a-z]+)/([0-9]{4})?', 'index.php?post_type=$matches[1]&issue_year=$matches[2]', 'top');
}
add_action('init', 'magazine_rewrite_rules');
Natürlich habe ich auch benutzerdefinierte Abfragen in archive.php. Und es funktioniert gut.
Aber jetzt funktionieren meine URLs für einzelne Artikel nicht. Standardmäßig ist es:
http://my_site/magazine/post-title
Aber es zeigt alle Artikel aus dem Magazin wie URL (und es verwendet die Vorlage archive.php):
http://my_site/magazine/
Wie füge ich Regeln für das erneute Schreiben einzelner benutzerdefinierter Beiträge ordnungsgemäß hinzu? Es ist möglich, dass ich URLs für einzelne Posts (nur für ausgewählte benutzerdefinierte Post-Typen) in diesem Format haben möchte:
http://my_site/magazine/year/issue/post-title
10
ist die Standard - Priorität . In diesem Fall können Sie beide weglassen… oder eine höhere Zahl ausprobieren. (2) Haben Sie die resultierenden Umschreiberegeln überprüft? Stellen Sie außerdem sicher, dass Sie die Reihenfolge dieser Regeln überprüfen, während sie in ihrer Reihenfolge verarbeitet werden. Dump$GLOBALS['wp_rewrite']
. (3) Haben Sie hinzugefügt,query_vars
dass Konflikte auftreten könnten?