it-swarm.com.de

Wie stelle ich URLs von Blog-Posts als mysite.com/blog/%postname%/ voran, erlaube aber, dass Autoren weiterhin unter mysite.com/authors/%nicename% gefunden werden?

Ich habe eine Reihe von Dingen ausprobiert, kann aber keine Lösung finden, die funktioniert.

Ich möchte, dass meine Site die folgende Struktur hat:

mysite.com/ = homepage
mysite.com/blogs/ = blog archive
mysite.com/blogs/year/ = blog archive (in a specific year)
mysite.com/blogs/year/month/ = blog archive (in a specific month)
mysite.com/blogs/year/month/postname = blog post
mysite.com/authors/ = authors archive
mysite.com/authors/nicename = author profile
mysite.com/customposttype/ = custom post type archive
mysite.com/customposttype/postname = custom post type post

Gegenwärtig funktioniert mit /blogs/%year%/%month%/%postname%/ als Permalink-Struktur alles korrekt, mit Ausnahme des Autors. Es erzwingt mysite.com/blogs/authors/ und mysite.com/blogs/authors/nicename, was nicht wünschenswert ist, da die meisten Autoren benutzerdefinierte Beitragstypen und keine Blogs erstellen.

Einige Beiträge habe ich hier überprüft, aber ohne die richtige Antwort:

Wie man URLs von Blog-Posts richtig voranstellt

Permalinks Frage: Hinzufügen eines Präfix NUR vor den Posts

Kann die URL für den normalen Beitragstyp geändert werden, ohne dass sich dies auf die URL anderer benutzerdefinierter Beitragstypen auswirkt?

1
ZachM

Sie können die Autorenbasis unabhängig einstellen, indem Sie den $wp_rewrite global bearbeiten:

function wpa55976_author_base() {
    global $wp_rewrite;
    $wp_rewrite->author_base = 'authors';
    $wp_rewrite->author_structure = '/' . $wp_rewrite->author_base . '/%author%';

    // EDIT - rewrite rule to force author urls to resolve:
    add_rewrite_rule('authors/([^/]+)/?$', 'index.php?author_name=$matches[1]', 'top');

}
add_action( 'init', 'wpa55976_author_base' );

Stellen Sie sicher, dass Sie Ihre Permalinks-Seite besuchen, um die Umschreibungen zu löschen, nachdem Sie diese hinzugefügt haben.

Das einzige, was Sie nicht bekommen, ist mysite.com/authors/ = authors archive, da WordPress diese Seite standardmäßig nicht bereitstellt, obwohl Sie möglicherweise eine authors-Seite erstellen und eine benutzerdefinierte Vorlage verwenden oder eine Umschreiberegel hinzufügen können, um damit umzugehen.

4
Milo