Suchen Sie nach einer Möglichkeit, den Autoren-URL-Slug zu ändern? Dieser Ausschnitt ändert den Standard-Slug mysite.com/author/name zu mysite.com/profile/name. Sie können dies jedoch nach Belieben ändern.
Anweisungen:
- Fügen Sie diesen Code zur functions.php-Datei Ihres Themes oder in ein websitespezifisches Plugin ein.
- Ändern Sie
profilein Zeile 4 in einen beliebigen Namen, den Sie möchten.
add_action('init', 'cng_author_base');
function cng_author_base() {
global $wp_rewrite;
$author_slug = 'profile'; // change slug name
$wp_rewrite->author_base = $author_slug;
}
Hinweis: Wenn Sie zum ersten Mal Code-Schnipsel in WordPress hinzuf ilde{A}gen, lesen Sie bitte unseren Leitfaden, wie Sie Code-Schnipsel richtig in WordPress kopieren / einf ilde{A}gen, damit Sie Ihre Website nicht versehentlich besch ilde{A}digen.
Wenn Ihnen dieser Codeausschnitt gefallen hat, sollten Sie sich unsere anderen Artikel auf der Website ansehen, wie zum Beispiel: 9 beste SEO-Tools, um Ihren Website-Traffic zu steigern, SCHNELL!
Weder Ihr Code noch meiner wird funktionieren! ! ! ! Es ist nervig!……
// Autoren-Basis für Autoren-URL ändern.
function custom_author_base() {
global $wp_rewrite;
$author_slug = ‘@’; // Autoren-Basis-Slug auf ‘@username’ setzen
$wp_rewrite->author_base = $author_slug;
}
add_action( ‘init’, ‘custom_author_base’ );
// Autoren-URL auf neue URL-Struktur umschreiben.
function custom_author_rewrite_rules( $author_rewrite ) {
$author_new_rules = array(
‘@([^/]+)/?$’ => ‘index.php?author_name=$matches[1]’
);
$author_rewrite = array_merge( $author_new_rules, $author_rewrite );
return $author_rewrite;
}
add_filter( ‘author_rewrite_rules’, ‘custom_author_rewrite_rules’ );
// Alte Autoren-URL auf neue URL-Struktur umleiten.
function custom_author_redirect() {
if ( is_author() && strpos( $_SERVER[‘REQUEST_URI’], ‘/author/’ ) !== false ) {
wp_redirect( home_url( str_replace( ‘/author/’, ‘/’, $_SERVER[‘REQUEST_URI’] ) ), 301 );
exit();
}
}
add_action( ‘template_redirect’, ‘custom_author_redirect’ );
Hallo, ist es möglich, den Autoren-Slug nur für benutzerdefinierte Beitragstypen mit einer Bedingung zu ändern?
Danke
Dieser Code dient dazu, die Autoren-Basis zu ändern, nicht den Autoren-Slug.
Dies ist nicht für einzelne Autorennamen, sondern dazu gedacht, den Slug /author/ in etwas anderes zu ändern, z. B. /profile/. Das Endergebnis wäre /profile/authorname
Danke!!
Vielen Dank!!
Danke
Danke
Erinnern Sie sich an die Frage von Mike Kennedy?
Wie kann man nur site.com/author-name/ haben?
Wenn Sie author_slug = ''; setzen
das funktioniert für die Autorenseiten, aber in meinem Fall erhalte ich jetzt 404-Fehler für normale Seiten. Es scheint, dass ein leerer Autoren-Slug das Umschreiben für normale Seiten unterbricht. Hat jemand eine Lösung?
Was Sie vielleicht versuchen möchten, ist, unter "Einstellungen" zu "Permalinks" zu gehen und dann auf "Änderungen speichern" zu klicken, um die Rewrite-Regeln zu leeren.
[…] an Kevin Chard für das coole […]
Ich konnte die author_base Permalink-Struktur mit Code ähnlich dem obigen ändern, aber ich habe eine benutzerdefinierte Rolle erstellt und frage mich, ob ich 2 verschiedene author_base's basierend auf der Benutzerrolle haben könnte. Die Standardstruktur für Administratoren, Autoren usw. (/author/authorname) und eine andere für die neue Benutzerrolle (/gift-registry/authorname).
Ryan
Danke!
@wpsnipp:disqus Ist es möglich, benutzerdefinierte Autoren-Slugs basierend auf Benutzerrollen zu erstellen?
fügen Sie $wp_rewrite->flush_rules()
am Ende der Funktion hinzu, es wird ohne 404 funktionieren :)
Danke, Bro
Ich habe dies in functions.php eingefügt und es hat den Slug geändert, aber ich bekomme einen 404, wenn ich den neuen Slug besuche. Irgendwelche Vorschläge? Danke
Hallo Zach, wenn Sie weiterhin Probleme haben, könnten Sie dieses Plugin ausprobieren, da Sie keine Probleme haben sollten.
http://wordpress.org/extend/plugins/author-slug/
Hallo Kevin,
Danke für den Vorschlag. Ich habe dieses Plugin gesehen und würde es gerne ohne Plugin herausfinden – ich baue eine sehr große Website und versuche, die Anzahl der Plugins zu reduzieren.
Danke,
Zach
Hallo Zach, Sie könnten den Code einfach aus dem Plugin nehmen und ihn in Ihre functions.php einfügen, und das wird gut funktionieren.
Für alle anderen, die das gleiche Problem haben... leeren Sie einfach die Permalinks (Gehen Sie zu Einstellungen -> Permalinks, um sie zu leeren)