Site Overlay

SimClick+All in One SEOでdescriptionに投稿タイトルが入ってしまう


先に結論を言っておくと、原因は、スクリーンリーダー用に設定してある投稿タイトルをAll in One SEOが拾ってしまうためでした。

解決策としては、テーマとAll in One SEOどっちを取るか考えた結果、今回はAll in One SEOの使用をあきらめました。

原因特定までに2日くらいかかったので、試行錯誤の経緯も含めてのせてみます。


現象

All in One SEOの「メタ説明」の項目に「投稿抜粋」だけを指定しているのに、実際に生成されるmeta description、og:description、twitter:descriptionを見ると、なぜか「投稿抜粋」+「投稿タイトル」が入っている。


環境

WordPress 5.8
All in One SEO 4.1.3.1
テーマ:SimClick 1.0.9(自分でいじった子テーマを使っているが、親テーマでも発生)
発生したページ:このサイトの投稿・固定ページ


試したこと

設定を確認

まずは普通にAll in One SEOの設定を確認。

↓投稿個別の設定

うん、抜粋だけになってるよね。

↓一応、全体の設定も確認。

こちらも抜粋だけ。


抜粋を確認

抜粋そのものにタイトルが入っちゃってるのかと思って、excerptを確認。

the_excerpt() → 正常な抜粋が表示される

get_the_excerpt()  → 正常な抜粋が表示される

あれ…。てっきり抜粋の生成がうまく行ってないんだと思ったら、そっちは正常…?

(後から考えると、「抜粋そのものにタイトルが入っちゃってる」というのがそのまま正解だったわけですが、CSSでページ上は見えない状態になっていたので、気づきませんでした。タグとしては吐かれてたので、ソースを見ていればここで解決できた…。)


自分で抜粋を入力してみる

上記で抜粋は正しく生成されていると思ってしまったため、プラグインが原因だと考え、いろいろ試す羽目に。

まずは投稿個別の編集画面で、「抜粋を入力」のところに自分で入力してみる。

変わらず。descriptionとして「自分で入力した抜粋」+「投稿タイトル」が表示される。


「投稿抜粋」以外を設定してみる

「投稿抜粋Only」「投稿コンテンツ」などを設定してみる。

変わらず。「設定したもの」+「投稿タイトル」が表示される。

ただし、「投稿タイトル」のみを設定した時は、「投稿タイトル」のみが表示される。


固定ページに設定してみる

投稿だけの問題なのかと思い、固定ページのメタ説明にも「固定ページ抜粋」を設定してみる。

同じ。「固定ページ抜粋」+「固定ページタイトル」が表示される。


All in One SEOプラグインの削除&インストールし直し

変わらず。


テーマの抜粋文字数を変えてみる

SimClickのテーマ設定で、抜粋の文字数を160字にしていました。文字数が短すぎるとAll in One SEO側で文字数を稼ぐために記事タイトルを補完する機能があるとか…???

と思いましたが、20字にしようと、300字にしようと、変わらずでした。まあそうだよね。


テーマを変えてみる

SimClick子テーマから、元の親テーマに変更。

変わらず。

じゃあ他のテーマならどうだ、ってことで自分が以前作ったオリジナルテーマに変更。

な、直ったーーーー!!!


結論

原因

親テーマのSimClickに原因がありそうだとわかり、親テーマ内でexcerptを検索。近くにtitleがあるところを特定。原因は、functions.phpの以下の記述でした。

functions.php
wp_kses_data( $more_tag_text ). '<span class="screen-reader-text">' . get_the_title( get_the_ID() ) . '</span>'

該当部分だけ取り出したのでわかりづらいですが、要は、抜粋のうしろにつく「続きを読む」の部分に、スクリーンリーダー用のspanで囲った記事タイトルをくっつけていたわけですね。それがAll in One SEO側で表示されてしまっていた、と。はーーーなるほど、納得。


解決策

解決策としては、今回は、All in One SEOの使用をやめることにしました。もともと絶対必要ってほどではなかったし、お試しのつもりで使っていたので。OG設定も自分で設定書けばいいだけだし。

All in One SEOの使用を続ける場合は、子テーマのfunctions.phpで抜粋生成部分を上書きし、ただの抜粋とサイト表示用の抜粋を分けて、サイト表示用のほうにだけスクリーンリーダーの部分を追加する…とかでしょうか。もっとうまいやり方があるかもしれませんが、今回はそこまでする気力が尽きたので、これで終了としました。

いやー久々にはまった。やっぱり自分でテーマ作りたくなってきたな。