Căutați o modalitate de a schimba slug-ul URL-ului autorului? Acest fragment de cod va schimba slug-ul implicit, mysite.com/author/name, în mysite.com/profile/name. Cu toate acestea, îl puteți schimba în orice doriți.
Instrucțiuni:
- Adăugați acest cod în fișierul functions.php al temei dvs. sau într-un plugin specific site-ului.
- Schimbați
profileîn linia 4 cu orice nume doriți.
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;
}
Notă: Dacă este prima dată când adăugați secvențe de cod în WordPress, consultați ghidul nostru despre cum să copiați / lipiți corect secvențe de cod în WordPress, pentru a nu vă defecta accidental site-ul.
Dacă v-a plăcut acest fragment de cod, vă rugăm să luați în considerare să consultați celelalte articole ale noastre de pe site, cum ar fi: Cele mai bune 9 instrumente SEO pentru a crește traficul site-ului dvs., RAPID!
Nici codul meu, nici al tău nu va funcționa! ! ! ! Este enervant!……
// Schimbă baza autorului pentru URL-ul autorului.
function custom_author_base() {
global $wp_rewrite;
$author_slug = ‘@’; // Setează slug-ul bazei autorului la ‘@username’
$wp_rewrite->author_base = $author_slug;
}
add_action( ‘init’, ‘custom_author_base’ );
// Rescrie URL-ul autorului la noua structură URL.
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’ );
// Redirecționează URL-ul vechi al autorului către noua structură URL.
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’ );
Bună, este posibil să schimbați slug-ul autorului doar pentru tipurile de postări personalizate folosind o condiție if?
Mulțumesc
Aceste coduri sunt pentru a schimba baza autorului, nu slug-ul autorului.
Acest lucru nu este pentru numele individuale ale autorilor, ci mai degrabă pentru a schimba slug-ul /author/ cu altceva, cum ar fi /profile/. Rezultatul final ar fi /profile/numeautor
Mulțumesc!!
Mulțumesc mult!!
mulțumesc
mulțumesc
Îți amintești întrebarea lui Mike Kennedy?
Cum poți avea doar site.com/nume-autor/ ?
Dacă setezi author_slug = ” ;
acest lucru va funcționa pentru paginile autorilor, dar în cazul meu acum primesc erori 404 not found pentru paginile normale. Se pare că un slug de autor gol întrerupe rescrierea pentru paginile normale.
Are cineva o soluție?
Ceea ce ai putea încerca este să mergi la „permaliene” în setări și apoi să dai clic pe „salvare modificări” pentru a goli regulile de rescriere.
[…] lui Kevin Chard pentru grozavul […]
Am reușit să schimb structura permaliene a author_base cu un cod similar celui de mai sus, dar am creat un rol personalizat și mă întreb dacă aș putea avea 2 author_base-uri diferite în funcție de rolul utilizatorului. Structura implicită pentru administratori, autori etc. (/author/numeautor) și alta pentru noul rol de utilizator (/gift-registry/numeautor).
Ryan
Mulțumesc!
@wpsnipp:disqus este posibil să creați slug-uri personalizate pentru autori pe baza rolurilor utilizatorilor?
adăugați $wp_rewrite->flush_rules()
la sfârșitul funcției va funcționa fără 404 :)
mulțumesc frate
Am plasat acest cod în functions.php și a schimbat slug-ul, însă primesc o eroare 404 când accesez noul slug. Aveți sugestii? Mulțumesc
Salut Zach, dacă vei continua să ai probleme, ai putea încerca acest plugin, deoarece nu ar trebui să ai probleme.
http://wordpress.org/extend/plugins/author-slug/
Salut Kevin,
Mulțumesc pentru sugestie. Totuși, am văzut acel plugin și aș dori să aflu cum să îl folosesc fără un plugin — construiesc un site foarte mare și încerc să reduc numărul de plugin-uri.
Mulțumesc,
Zach
Salut Zach, ai putea pur și simplu să scoți codul din plugin și să îl plasezi în fișierul functions.php și va funcționa corect.
Pentru oricine altcineva care are aceeași problemă… doar resetează permalink-urile (accesând Setări->Permalink-uri le resetezi)