All in One SEOでページタイトルの挙動がおかしくなった

今回起きた事象

All in One SEOのプラグインを入れたサイトにて、投稿記事一覧を出力しているテンプレートを使っているページのタイトルがすべて「ニュース」となってしまう現象が発生しました。

本来、ただの固定ページに作成した個別のテンプレートをあてているだけなので、固定ページで指定しているタイトルがページタイトルになるはずです。

つまり「ニュース」=投稿アーカイブのタイトルになってしまっていたということです。

記述におかしい箇所はなく、どうしても解決できなかったのでプラグインのサポートに問い合わせし、見て頂くことができました。

解決方法

投稿記事の出力の際、生成したクエリを「$wp_query」という変数に格納していました。

「$wp_query」はグローバル変数であり、テーマの前半で「$wp_query」を宣言した場合、「wp_reset_postdata()」は思うように機能しないそうです。

「$wp_query」を「$posts」に変更することで、悩み続けていた本事象が解決しました。

ここでのポイントは、セカンダリWP_Queryの結果の変数名として「$wp_query」を使用することは好ましくなく、一意の名前を使用する方がよいということだそうです。

無事解決してよかったです。プラグインのサポートの方に感謝!!

related article

2019/10/21 WordPress

カスタムタクソノミーをチェックボックスで表示させる

2019/10/21 WordPress

Warning: count():のエラー解決策

2020/01/17 WordPress

マルチサイトはlogin rebuilderプラグインは使えない

2020/06/29 WordPress

WordPressの投稿記事のタイトルの文字数を制限する