著者ページのデフォルトURLをオーバーライドしますか?


13

したがって、特定の著者による投稿のリストを表示するデフォルトのURLは次のようになります。

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

私はそのURLの「著者」を別のものに変更する方法を疑問に思っていますか?

私はチャータースクールのウェブサイトに取り組んでおり、各教師が「教室」ごとに投稿のリストを持つことを許可したいと考えています。目的のURLは

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

回答:



15

これを関数に追加すると、スラッグがデフォルトの「author」から「classroom」に書き換えられます。

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

それがあなたを助けることを願っています


1
flush_rules()(リソースで)非常に高価なので、ページを読み込むたびに呼び出すことはありません。1つのサイトに対してのみこれを行う場合は、そのサイトを除外してPermalinksページにアクセスするだけで、ルールもフラッシュされます。
ヤンファブリ

はい@Jan Fabry、あなたは正しいです、私は今答えを編集しました。より良い解決策を書きました。
フィリップ

4
このスニペットまたはプラグインt31osを使用するかどうか疑問に思う人のために:プラグインはまったく同じことをしますが、URL部分を変更するためのインターフェースがあります。おそらく毎月変更することはないので、あなたのこのスニペットはfunctions.php十分すぎるほどです(そして偶然に無効になることはありません)。
ヤンファブリ

1

私は同じことをするために「Edit Author Slug」プラグインを使用します http://www.techcartnow.com/author/kapil-khandelwal/ WordPressブログでます。このプラグインを使用して「author slug」を変更しました。

Author Slugの編集」プラグインを使用すると、著者ベース(著者URLの「/ author /」部分)と著者スラッグ(デフォルトは著者のユーザー名)の両方を変更できます。


0

以下に追加できますfunctions.php

global $wp_rewrite;
$wp_rewrite->author_base = "member"; // or whatever
$wp_rewrite->flush_rules();
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.