Zastąpić domyślny adres URL stron autora?

13

Domyślny adres URL do wyświetlania listy postów określonego autora wygląda następująco:

http://domain.com/author/{username}

Zastanawiam się, jak zmienić „autora” w tym adresie URL na coś innego?

Pracuję na stronie internetowej dla szkoły czarterowej i chcieliby, aby każdy nauczyciel miał listę postów według „klasy”. Tak więc pożądany adres URL byłby

http://domain.com/classroom/{username}

jessegavin
źródło

Odpowiedzi:

15

Możesz dodać to do swoich funkcji, a to przepisuje ślimak z domyślnego „autora” na „klasę”,

function new_author_base() {
    global $wp_rewrite;
    $author_slug = 'classroom';
    $wp_rewrite->author_base = $author_slug;
}
add_action('init', 'new_author_base');

mam nadzieję, że ci to pomoże

Philip
źródło
1
flush_rules()jest dość drogi (pod względem zasobów), więc nie wywoływałbym tego przy każdym ładowaniu strony. Jeśli zrobisz to tylko dla jednej witryny, możesz ją pominąć i po prostu odwiedzić stronę Permalinks , to również opróżni reguły.
Jan Fabry
Tak @Jan Fabry, masz rację, mam teraz odpowiedź do edycji. Napisałem lepsze rozwiązanie.
Philip
4
Dla każdego, kto zastanawia się, czy użyć tego fragmentu, czy wspomnianej wtyczki t31os: wtyczka robi dokładnie to samo, ale z interfejsem do zmiany części adresu URL. Ponieważ prawdopodobnie nie zmienisz go co miesiąc, ten fragment kodu functions.phpjest więcej niż wystarczający (i nie zostanie przypadkowo wyłączony).
Jan Fabry
0

Możesz dodać to w functions.php:

global $wp_rewrite;
$wp_rewrite->author_base = "member"; // or whatever
$wp_rewrite->flush_rules();
Madhavi Jha
źródło