質問: ### 前提・実現したいこと 現在、私が勤めている会社にて、 Wordpressを使用して、WEBマガジンを構築しています。 カスタム投稿タイプを新たに作成し、 そのカスタム投稿を使用し、 ライター(Author)は記事を執筆していきます。 そこで、記事のライターごとの、 カスタム投稿のアーカイブページを作成したいと思います。 HTMLやPHP(WP_Queryのサブループ)を駆使してどうにか実装はできると思うのですが、 もっと単純な方法で実装したいと考えております。 それは後任に保守を引き継ぐ場合や、 保守性の観点から、できるだけ単純な方法がよいと考えているからです。 具体的には、プラグイン「Custom Post Type Permalinks」を使用して、 単純にアーカイブページのURLをたたくだけで、 ライターごとのアーカイブページを表示したいと考えています。 (WP_Queryのメインループが、カスタム投稿の 特定のライターの記事を取得するようになっているようにしたい) ### 試したこと プラグイン「Custom Post Type Permalinks」を使用して、 カスタム投稿タイプのカスタムタクソノミーごとのアーカイブページは作成できました。 <補足> カスタム投稿タイプ名:article カスタムタクソノミー:category_article 「Custom Post Type Permalinks」でのパーマリンク設定: (ドメイン)/article/category_article/%category_article%/%post_id%/ 上記の設定だと、 「(ドメイン)/article/category_article/%category_article%」のURLにて、 アーカイブページを表示させることができました。 これと同じような方法で、 カスタム投稿タイプのAuthorごとのアーカイブページを表示する方法をご存知ないでしょうか。
回答: 例えば、ドメイン以下に /?post_type=hoge&author=4 と言う感じで入力して、カスタム投稿タイプの、authorごとの一覧が取得できると思います。 post_type= の値はカスタム投稿タイプのスラッグ author= の値はユーザー(author)のID それが確認できたら、あとはリライトルールを追加すれば良いような気がします。 テーマのfunctions.phpに下記を追加 ``` function authorUrlRewrite(){ add_rewrite_rule('^hoge/author/([^/]*)/?$' , 'index.php?post_type=hoge&author_name=$matches[1]','top'); } add_action( 'init', 'authorUrlRewrite' ); ``` 適用するには、functions.phpをアップロード後、 設定>パーマリンク設定 を開いて何もしないで変更を保存ボタンを押す。 ドメイン以下に /hoge/author/username/ で、投稿の一覧が表示されるはずです。