WordPressで、ライター一覧 (投稿者一覧) と投稿者ごとの記事一覧を作成する方法

WordPress

WordPressを複数人が記事投稿を行う場合、よくあるのが

「この記事を書いた人」

「ライター一覧」

ですね。

「この記事を書いた人」は、

WordPressに著者表示「この記事を書いた人」をプラグインなしで追加する方法
WordPressを複数人が記事投稿を行う場合、よくあるのが 「この記事を書いた人」 「ライター一覧」 で...

にまとめました。

そこで、今回、「ライター一覧」をプラグインなしで、PHPで実装してみました。

スポンサーリンク
スポンサーリンク

WordPressで、ライター一覧 (投稿者一覧) の作成方法

固定ページのテンプレートを作成する

まず、テーマのフォルダにある page.php を複製して、page-writer.php を作成します。

次に、page-writer.php の先頭に、以下のように記述しておきます。

これで、テンプレート名「ライター一覧」が認識されます。

次に、

<?php the_content(); ?>

と書かれた箇所を探して、その下に以下のコードを貼り付けます。

これが、ライター一覧 (投稿者一覧) のコードになります。

exclude と書かれている所に、表示から除外されるユーザーのIDを複数個 記述します。

取り急ぎ、ID=1 (管理者) を除外しています。

次に、ユーザー一覧のためのスタイルシートを修正します。

以下のCSSを style.css に追記します。

これでテンプレートの準備が出来ました。

新規の固定ページを追加して「ライター一覧」をテンプレートにする

新規に固定ページを追加して「メンバー」のような名称を付けます。

中身は空でOKですが、固定ページのテンプレートとして、先ほど作成した「ライター一覧」を選びます。

このままこの固定ページを表示すると。。。

こんな感じで、投稿者一覧が表示されます。

投稿者ごとの記事一覧を作成する

ユーザーページは、author.php を利用

投稿者ごとの記事一覧を作成するには、テンプレートにある author.php を利用します。

ブログURLのあとに

「/author/[ユーザー名]」

でユーザーごとのページが表示されます。

何も設定していないとアーカイブページ(archive.php)のテンプレートで表示されます。(archive.phpがなければindex.php)

表示される記事はアドレスに入力したユーザーが書いた記事だけになっているはずです。

author.php は、通常はテンプレートに入っているはずです。

ただ、もしなければ、author.php というファイルをテンプレートのフォルダに作成し、以下のコードを入れておきます。

これで、取り敢えずは、ユーザーごとに記事一覧が表示されます。

Edit Author Slugで、投稿者アーカイブに表示されるユーザー名を変更する

ところで、ユーザーページにアクセスするのに以下のURLを入力したとします。

このURLは、そのままリダイレクトされて以下のページに切り替わります。

ここで、URLの

author/xxx

に表示されるのは、ユーザーのAuthor Slug です。

Author Slug はユーザー名を元に自動作成しているために、そのまま使っているとユーザー名を第三者から推定されてしまいます。

そうすると、セキュリティ上かなり危険なため、Author Slug を変更することにします。

Author Slug を変更するには

Edit Author Slug (https://ja.wordpress.org/plugins/edit-author-slug/)

というプラグインをインストールします。

Edit Author Slug をインストールしておくと、ユーザープロファイルから、投稿者スラッグを変更することが可能になります。


WordPressのおすすめ本

↓WordPressのおすすめ本はコチラ

WordPressのおすすめ本