All in One SEO 4.0系で「非推奨のフィルターが検出されました」警告の根本的解決策【aioseop_prev_link / aioseop_next_link】

WordPressの豆知識

こんにちは、クリエイターのSHOJIです。
2020年12月にWordPressのプラグイン「All in One SEO Pack」が「All in One SEO」と名称が変更され、バージョンも4.0系にアップデートされました。インターフェースもガラリと変更され、戸惑っておられる方も多いのではないでしょうか。

そんな中、All in One SEO(AIOSEO)で『非推奨のフィルターが検出されました』と通知が出たので対処方法を教えてほしいとの相談を受けました。

確認してみると、AIOSEOにて「aioseop_prev_link」「aioseop_next_link」が廃止され、代わりに「aioseo_prev_link」「aioseo_next_link」へ変更されたのに伴い警告が表示されたようです。

All in One SEO 4.0系で「非推奨のフィルターが検出されました」警告の根本的解決策【aioseop_prev_link / aioseop_next_link】

この警告表示が出た方は、functions.phpに「aioseop_prev_link」「aioseop_next_link」を使ったadd_filter記述をされている方だと思われるので、結論から先に言うと、functions.phpの該当する記述を「aioseop_prev_link、aioseop_next_link」から「aioseo_prev_linkaioseo_next_link」へ修正すると警告通知されなくなります。

ですが、これではこの警告に対する根本的な解決策とは言えません。したがって、トップページを固定ページに割り当てることをおすすめします。

今回のWordPress豆知識では、この「aioseop_prev_link」「aioseop_next_link」に関する説明と、トップページを固定ページに割り当てる方法について解説してみたいと思います。
 
 『非推奨のフィルターが検出されました』通知とは?
 そもそもどんなフィルター?
 ページの現状確認
 AIOSEOがprev/nextリンクを出力する理由
 表示設定にてホームページの表示を確認
 トップページを固定ページに割り当てる方法
 最後に
 

「非推奨のフィルターが検出されました」通知とは?

今回のこの通知は、旧バージョンで使われていた「aioseop_prev_link」「aioseop_next_link」のフィルターが新バージョンにて廃止されたことで『非推奨のフィルターが検出されました』と警告されたものです。

したがって、単にfunctions.phpの該当する記述を「aioseop_prev_link、aioseop_next_link」から「aioseo_prev_link、aioseo_next_link」へ修正すれば、警告は通知されなくなります。

All in One SEO 4.0系で「非推奨のフィルターが検出されました」警告の根本的解決策【aioseop_prev_link / aioseop_next_link】 

そもそもどんなフィルター?

「aioseop_prev_link」「aioseop_next_link」とは、linkタグのrel="prev"とrel="next"を出力するために、旧All in One SEO Packのフォルダ内にある「aioseop_class.php」にて記述されいる、

$prev = apply_filters( 'aioseop_prev_link', $prev );
$next = apply_filters( 'aioseop_next_link', $next );
の、apply_filters()で使われていたフィルターフックです。

All in One SEO 4.0系で『非推奨のフィルターが検出されました』警告の根本的解決策【aioseop_prev_link / aioseop_next_link】

この【linkタグのrel="prev"とrel="next"】は、ブログサイトでページネーションを有するページにとってはSEO的にも良しとされるものですが、ほとんどのサイトでは一般的なホームページ型のトップページとして利用するケースが多く、ページネーションのないページではSEO的に逆効果となってしまいます。

そのため、意図しないページで自動出力してしまうlinkタグのrel="prev"とrel="next"を除去する方法として、functions.phpに「aioseop_prev_link」「aioseop_next_link」を使ったadd_filterを記述していたわけです。

All in One SEO 4.0系で「非推奨のフィルターが検出されました」警告の根本的解決策【aioseop_prev_link / aioseop_next_link】

ただし、「aioseop_prev_link、aioseop_next_link」から「aioseo_prev_link、aioseo_next_link」へと変更されただけなので、prev/nextリンクが出力されなくなったわけではありません。

したがって、functions.php内の該当するadd_filterを修正するしないに関わらずprev/nextリンクを出力しようとAIOSEOはするため根本的な解決策にはなっていません。ただし、WordPressの設定次第では出力されなくなります。これに関しては後ほど解説したいと思います。
 

ページの現状確認

前述の通り、最新バージョンのAIOSEO(画像ではバージョン4.0.11になってますが、2021/1/10時点での最新バージョンは4.0.12)でも、prev/nextリンクが出力されているのが確認できます。

ただし、ほとんど同様の設定内容のサイトであっても新バージョンのAIOSEOでは出力されていないサイトもあります。。。というか、本来然るべき設定さえ行っていれば、functions.phpにて設定をしなくてもprev/nextリンクは出力されない仕様となっているのです。

All in One SEO 4.0系で「非推奨のフィルターが検出されました」警告の根本的解決策【aioseop_prev_link / aioseop_next_link】 

AIOSEOがprev/nextリンクを出力する理由

AIOSEOがトップページに自動的にprev/nextリンクを出力する理由は、そのサイトのトップページが「ページネーションを有する投稿ページ」とプラグインが判断しているためです。

言い換えると、そのサイトのトップページが「ページネーションを持さないホームページ」と判断すれば、All in One SEOはトップページにprev/nextリンクを出力しなくなります。
 

表示設定にてホームページの表示を確認

WordPress管理画面「設定」→「表示設定」から「ホームページの表示」設定の確認ができます。

「ホームページの表示」とは「トップページの表示」のことをさし、この設定にて最新の投稿」にチェックがされているとブログサイト設定となり、デフォルトではトップページにブログ一覧が表示されてしまいます。

そのため、そのサイトのトップページを「ページネーションを有する投稿ページ」とAIOSEOが判断するので、SEO的にも良しとされるprev/nextリンクを自動的に出力するのです。

なんて賢いプラグイン!

All in One SEO 4.0系で「非推奨のフィルターが検出されました」警告の根本的解決策【aioseop_prev_link / aioseop_next_link】

「ホームページの表示」設定にて「固定ページ」にチェックをし、「固定ページ:ホームページ」項目にて該当する固定ページを選択すれば、そのサイトのトップページが「ページネーションを持さないホームページ」という設定となり、prev/nextリンクは出力されません。

この「ホームページの表示」設定を正しく行っているかどうかが、All in One SEOがトップページにprev/nextリンクを自動出力するかどうかの分岐点であると言えます。
 

トップページを固定ページに割り当てる方法

All in One SEO 4.0系で「非推奨のフィルターが検出されました」警告の根本的解決策【aioseop_prev_link / aioseop_next_link】

①トップページ用の固定ページを作成
②トップページ用のテンプレート(front-page.php)を作成・アップロード
③「ホームページの表示」設定で「固定ページ」にチェック
④「固定ページ:ホームページ」にて該当する固定ページを選択

上の画像では「投稿ページ」にも固定ページを割り当てていますが、あくまで任意ですので、必要に応じて設定してください。

All in One SEO 4.0系で「非推奨のフィルターが検出されました」警告の根本的解決策【aioseop_prev_link / aioseop_next_link】

「ホームページの表示」設定をした後に、固定ページ一覧を確認すると、設定した各固定ページに対して「フロントページ」と「投稿ページ」という表記がされているのが分かります。
 

最後に

All in One SEO 4.0系にバージョンアップされ、『非推奨のフィルターが検出されました』と通知されてしまう理由と、prev/nextリンクを出力する理由が、自身のWordPressの設定に起因することがお分かりいただけたと思います。より正しい設定を行っていただく機会になれば幸いです。

今回ご紹介した根本的な解決策は、ご自身で作成されたオリジナルテーマにて十分理解された方が行うことを想定していますので、初心者の方や汎用のテーマを利用されている方が行ってしまうとサイト自体表示されなくなるなど想定外のエラーが発生する可能性があります。ご注意ください!

したがって、単に「aioseop_prev_link・aioseop_next_linkの非推奨フィルター検出」の警告通知を消したいだけなら、functions.phpの該当する記述を「aioseop_prev_link、aioseop_next_link」から「aioseo_prev_link、aioseo_next_link」のみ修正を行うことが、初心者の方には安全策なのかもしれませんが、根本的な解決がなされていないことを考慮すると、今後しっかりと勉強して、どこかのタイミングできちんとWordPressno設定を変更する必要はあるかと思います!

Webの豆知識」の関連記事

インフォコネクトに
相談してみませんか?

経営コンサルティングやITサービス活用支援、ホームページ制作などに関するご依頼や、ご質問・ご相談など、なんでもお気軽にお問い合わせください。