
WordPressのカスタマイズで ホームページ設定 は「最新の投稿」にするか「固定ページ」にするかを選ぶことができます。「固定ページ」にしたときは同時に「投稿ページ」というところに固定ページを設定すると、投稿一覧を作ることができます。「最新の投稿」にした場合はなぜか、この 投稿一覧 ができないため、色々工夫したりしたのですが簡単なコードを入れるだけで 投稿一覧 を表示できることがわかったのでそれについて書きます。
WordPressのカスタマイズで「ホームページ設定」の指定方法は2つあります
WordPressのカスタマイズで「ホームページ設定」の指定方法は2つあります。まずは簡単に固定ページをホームページに設定する動作について書きます。

ダッシュボード 外観>カスタマイズ をクリック

ホームページ設定をクリック
ホームページ設定:固定ページにしたとき
ホームページ設定を固定ページにしたときの表示について書きます。

固定ページにチェックして

ホームページのところにある新規ページをクリックして

分かりやすい名前(ここでは「ホームページ」)を入力して追加をクリック
同じく、投稿ページにも

分かりやすい名前(ここでは「ブログ」)を入力して追加をクリック

公開をクリック
これでトップページは「ホームページ」という固定ページから表示されるようになり、「ブログ」という固定ページを表示すると投稿一覧が表示されるようになります。
固定ページ一覧を見ると

このようにトップページのところにはフロントページ、ブログのところには投稿ページという表示があり、特別な意味を表しています。
ブログページを表示させると、

ブログ一覧、ブログ用サイドバー(テーマによって異なる)が表示されます。
ホームページ設定:最新の投稿にしたとき
WordPressのカスタマイズで「ホームページ設定」を最新の投稿にするには

ダッシュボード 外観>カスタマイズ ホームページ設定で、最新の投稿にチェックをして公開をクリックするだけです。これでトップページは最新の投稿になりますが、先ほどのブログページを見ても、

このように中身がない固定ページとして表示されるだけになります。固定ページ一覧を見ると

トップページ、ブログの表示が一般の固定ページと同じになっていることがわかります。
ホームページ設定を「最新の投稿」にしていても、投稿一覧をトップページ以外でも表示したい
ホームページ設定を「最新の投稿」にしていても、投稿一覧をトップページ以外でも表示したいという場合もあると思います。今までは「カテゴリー」に「blog」のようなトップカテゴリーを作っておいて、そのカテゴリー一覧を投稿一覧として表示する、などの回避方法をとっていました。
参考にさせていただいたWEBサイト
今回ちょっと検索をしてみたところ、これだ!という解決方法を見つけました。
WordPressカスタマイズ辞典 投稿一覧ページを作成する
です。こちらに書いてあった、functions.phpにコードを追加する方法で思った通りのカスタマイズをすることができました!ありがとうございますm(_ _)m
コードの追加方法について
最近私はコードを追加する方法については2つの方法でご説明しています。
1.子テーマを使っていて、functions.phpに追加するのが容易である(好きである)方向け
2.子テーマではないあるいは子テーマを使ってるけどfunctions.phpはいじりたくない方向け
1.の方はお使いの子テーマのfunctions.phpにコードを追加します。
2.の方はプラグインCodeSnippetsを使ってコードを追加します。
CodeSnippetsを使うとテーマのアップデートがあっても影響がなく、またテーマを変更しても影響がありませんのでお勧めします。詳しい使い方は

をご覧下さい。
上記のサイトを参考に追加するコードを書いてみました。
※ ページ名しか変えていません!
/*
* 投稿にアーカイブ(投稿一覧)を持たせるようにします。
* ※ 記載後にパーマリンク設定で「変更を保存」してください。
*/
function post_has_archive( $args, $post_type ) {
if ( 'post' == $post_type ) {
$args['rewrite'] = true;
$args['has_archive'] = 'blog'; // ページ名
}
return $args;
}
add_filter( 'register_post_type_args', 'post_has_archive', 10, 2 );
このコードを1.の場合はfunctions.phpに追加、2.の場合はCodeSnippetsで追加します。
注意点として、
$args['has_archive'] = 'blog'; // ページ名
のところで、blogというページ名を付けていますが、既にblogというページ名やスラッグがある場合は、かぶらない名前にこのコードを変更して下さい。
CodeSnippetsをお使いの方はインポート用のファイルをこちらに置いておきますので、ダウンロードして解凍して、インポート、有効化してお使い下さい。
コードを追加した後に必ず「パーマリンク設定」「変更を保存」をする
このコードを入れたら必ず、

ダッシュボード 設定>パーマリンク設定をクリックし、
表示されたページの一番下にある

変更を保存をクリックします。
投稿一覧ページ表示の確認
http://ホームページURL/blog/ で表示すると、

このようにブログ一覧、ブログ用サイドバー(テーマによって異なる)が表示されました。このようにこのカスタマイズをすると固定ページがなくてもURLだけで投稿一覧が表示できるようになります。



コメント