Q.

WordPressでトップページの一覧に表示される順は、カスタマイズできるのでしょうか?それと、一覧表示の際に、とあるページのみが2回表示され、そのかわり表示されていないページが出てきています。何か対策はありますか?


A.

はい、WordPressでトップページの一覧に表示される順番はカスタマイズ可能ですし、特定のページが2回表示され、他のページが表示されないという問題も対策可能です。以下で詳しく説明します。


① トップページ一覧の表示順のカスタマイズ方法

方法1:「投稿」の場合

投稿一覧の順番は基本的に「投稿日(新しい順)」ですが、以下の方法で変更できます:

A. プラグインを使う

  • 「Post Types Order」プラグインを使うと、ドラッグ&ドロップで順番変更が可能。
    • インストール後、設定 → Post Types Order で有効化
    • 投稿一覧画面で並び替えができるようになります

B. functions.phpにコードを追加(テーマ編集)

function custom_post_order($query) {
  if ($query->is_home() && $query->is_main_query()) {
    $query->set('orderby', 'title'); // タイトル順
    $query->set('order', 'ASC');     // 昇順
  }
}
add_action('pre_get_posts', 'custom_post_order');

orderbydate, title, meta_value などに変更可能です。


② 特定のページが2回表示され、別のページが表示されない件

このような問題は以下が原因の可能性があります:

✅ よくある原因と対策

原因対策
キャッシュの不具合キャッシュプラグイン(例:WP Super CacheやLiteSpeed Cache)を一度クリアしてみてください。
重複したクエリがあるカスタムクエリ(例えば query_posts()WP_Query の使用)で同じIDを複数回呼んでいないか確認。
Sticky Posts(先頭固定)「先頭に固定表示」されている投稿が繰り返し表示されることがあります。確認して一度外してみてください。
同じコンテンツを複数回インクルードテンプレート内でループが2回回っていないか、get_template_part() の誤用などを確認。
カスタムフィールドによるフィルタmeta_query などで同じ条件のものが重複取得されている可能性あり。クエリの見直しが必要です。

③ 調査手順のおすすめ

  1. テーマを一時的に「Twenty Twenty-Four」などに変更 → 問題が解消すれば、テーマ側のコードが原因
  2. プラグインを一つずつ無効化して検証 → プラグインの干渉を確認
  3. functions.phpやカスタムクエリの見直し

必要であれば、functions.phpや表示に使っているテンプレートのコードを貼っていただければ、具体的にチェックしますよ!


Q.

キャッシュプラグインは使っていないし、他のブラウザでは正常に表示されたので、Vivaldiのキャッシュの問題のようですね。


A.

なるほど、Vivaldi特有のブラウザキャッシュの問題だったんですね!それが原因で古い表示状態が残って、同じページが2回表示されたように見えていたのかもしれません。


✅ 解決方法:Vivaldiのキャッシュをクリアする手順

  1. 設定メニューを開く(画面右上のメニュー →「ツール」→「閲覧データの消去」)
  2. 「キャッシュされた画像とファイル」にチェック
  3. 期間は「すべての期間」を選択
  4. 「データを消去」ボタンをクリック

🔁 応急的にキャッシュ無視でリロードする方法

  • Windows/Linux: Ctrl + F5
  • Mac: Command + Shift + R

この問題はときどき他のブラウザでも起きますが、特にVivaldiやBraveなどChromiumベースのブラウザでキャッシュが強く効いていると起こりがちです。

それでもうまくいかない場合は、開発者ツール(F12)を開いた状態でリロードすると、キャッシュを完全無視できます(「ネットワーク」タブで「キャッシュを無効にする」にチェック)。


また何か挙動が気になる場合は、お気軽にどうぞ!HTMLやテンプレート側の確認も一緒にできますよ。


Q.

Vivaldiで表示がおかしくなる(一覧ページに2回出るページと出ないページがある)件で、他のブラウザでは正常に表示されたので、Vivaldiの問題かとも思いました(別のPCでも同様に起きたので)が、VivaldiにおいてもWordPressからログアウトすれば正常に表示されることがわかったので、Vivaldiのせいでもないようでした。導入しているプラグインにも影響を及ぼしそうなものはなく、今後何か気付いたことがあればこの場で報告します。


A.

とても丁寧な検証、ありがとうございます!
現時点の状況を見ると、以下のような可能性が考えられますね:


🔍 状況のまとめ

  • 他のブラウザでは正常 → WordPressやサーバー側の問題ではなさそう
  • Vivaldiだけで発生 → ブラウザ依存に見える
  • でもVivaldiでもログアウトすると正常 → ログイン状態による表示差
  • プラグインに怪しいものはなし

✅ 考えられる原因(ログイン状態でのみおかしい)

1. テーマやテンプレートの中で、ログイン状態に応じて異なるクエリや条件分岐がある

  • is_user_logged_in()current_user_can() で分岐している場合、表示が変わることがあります
  • pre_get_posts フィルターで is_admin() の扱いを間違えると、ログイン中のフロント表示にも影響することがあります

2. ログインユーザー用の表示制御プラグインが、裏でフィルターをかけている

  • 例:会員制プラグインや、カスタムロール・権限変更プラグイン
  • 投稿の表示制限がかかっていて、裏でリダイレクトや除外処理が動いている可能性あり

3. カスタムフィールドやメタ情報で絞り込みがあり、ログインユーザーにだけ異なる表示条件が適用される

  • meta_query にログイン情報が絡んでいるパターン

🛠️ 調査ポイント

もし次のような項目がテーマやカスタム関数の中にあれば、チェックしてみてください:

if ( is_user_logged_in() ) {
    // ログイン時だけ表示する何か
}

function custom_query_modification($query) {
    if ( $query->is_home() && $query->is_main_query() && is_user_logged_in() ) {
        // ログイン時だけクエリ変更
    }
}
add_action('pre_get_posts', 'custom_query_modification');

✅ 一時的なテスト案

  • テーマを一時的に「Twenty Twenty-Four」などに変更して再確認
  • functions.phpの内容を最小構成にして様子を見る
  • 表示に関わるプラグインを一つずつ一時停止して確認
  • ブラウザのシークレットウィンドウでもログインして再現するか確認

今後、何かわかったことや再現条件などが判明したら、ぜひまた教えてください!
こちらでも一緒に原因を深掘りしていきます 🔍