webコンテンツを徹底強化!WordPressサイト制作とプラグイン&テーマ情報・メンテ/エラー対応から、PHP/CSS/javascript、動画・音・イラスト等制作まで扱うコラム
マルチメディアコンテンツ制作読んどけ☆コラム

【PHPでwpプラグインを改造】all in one seoで、og:descriptionを書かなかったときに、文章が全部出力されてしまうのを直したい

      2021/03/01

今回は、ワードプレスでよくつかわれるプラグイン『all in one seo』で、文字が大量に出力されてしまうような状況になったので、なおしてみます。 設定のダッシュボードでどうにかならない部分は、PHPプログラムで改造!という感じでやってみます。さっそく、状況などをみていきましょう。

■症状:個別記事のdescriptionが空のまま記事を公開すると、og:descriptionに記事全文が出力されてしまった

今回の『all in one seo』で、ちょっと困った点です。記事個別ページなのですが、ここではall in one seoが書き換えて出力するtitle/descriptionのうち、descriptionを空にしたまま公開してしまいました。 そうしたところ、og:description/twitter:description(snsなど共有するときに使う)の部分に、記事が全文出力されてしまい、ヘッダーがごちゃごちゃしてしまいました。

ダッシュボードから、ogの部分を調整してみたところ、特に変化がなかったので、改造してなおしてみることにします。

■descriptionを制御しているファイル1:aioseop_class.phpを改造

■maximum_description_lengthを調整できる部分発見

で、プラグインのファイル構成をチェックしていたところ、『all-in-one-seo-pack/aioseop_class.php』というファイルを見つけました。このファイルには・・

// Max numbers of chars in auto-generated description. var $maximum_description_length = 320;

というように、自動descriptionの最大文字数を制御しているところがあったので、ここの数字を書き換えます。320とか多すぎるけど、googleが抜粋して表示することもあるので、やらなくてもよい気がしますが、目的は改造です(笑)

■結果:間違えた(笑)こちらはmeta descriptionだった

で、結果なんですが、こちらはogのdescriptionではなかったようです。通常のmeta descriptionが、文字数を調整されて出力されました。しかし、プラグイン改造でmeta descriptionの文字数を弄れるということがわかったので、特に問題はありません。

■aioseop_opengraph.phpファイルを調整してみる

■ファイルの場所や、記述のされかた

で、他にdescriptionかつogのファイルがないかなと思って探したら、書いているファイルを発見しました。

場所は『all-in-one-seo-pack/modules/aioseop_opengraph.php』で、機能ごとにモジュールわけされているので、少しわかりやすかったです。『post_contentで記事本文抜く』という意味のようです。post_excerpt(抜粋)は、他の条件になっていました。しかしこのファイルは、ダッシュボードでの設定によって条件分岐が入り組んでるので、内容は複雑です。

■結果:全文出力は回避

上記の部分を文字数指定できる『mb_substr($post->post_content, 0, 300);』に書き換えました。

指定された文字数とちょっと数字が違うところがあるので、他のところも見てみたいと思いますが、とりあえず『空で公開しても、og:descriptionに記事全文出力しなくなった』ので、このファイルを改造すればよいとわかりました。プラグインじゃなくてもog系はheader.phpに出力タグ書いてもいけそうですけどね。

■そのほかの対策・あとがき・注意

PHPプログラムを改造して、文字の出力を調整しましたけど、実は単純な対策があります。 それは『毎回記事ごとにdescriptionをきちんと書く』です。手間はかかるかもしれませんが、書いておけばきちんと出力してくれます。

とはいえ、プラグインを改造できれば、文字数や表示のしかたなども、かゆいところに手が届くようにできるので、こだわる方は、ぜひやってみてください。

*これは注意なんですけど、wordpress4.9のプログラムエラー警告(エラーを事前に教えてくれる)をすり抜けて、画面を真っ白にしてしまうことがありました。wp4.9が『構文としては合っていると判定したけど、実際には動かない』という書き方をしたときに起こりました。なので、ダウンロードしたプラグインのファイルは保存しておいて、万が一動かなくなったときはすぐに戻せるようにしておくとよいでしょう。


【カテゴリ】 - WordPressプラグイン情報
【タグ】 - , ,

  関連記事

【WordPress】WP-Membersプラグインによる、会員向けコンテンツサイトの構築(カスタマイズ必須?)

今回は、現在管理人が検討している(まだ実装はしません)『WP-M ...

フロントの『aioseo-admin-bar-css』を出力しないようにしたい→ログイン時のみ出るようになっているので大丈夫です

今回はAll_in_One_SEO(WordPressプラグイン ...

管理画面からFTP操作『WP File Manager』~過去の脆弱性ver・機能・使用例(テーマ消えないなど)の紹介

今回はWordPressプラグイン情報です。都合によりFTPが使 ...

WordPressで車販売サイトが作れる『Car Dealer, Classifieds & Listing』・英語なのでネックも

今回は、もはや何でもある感じのWordPressプラグインで、『 ...

functions.phpエディットできない(orテーマファイル変更しない)場合の機能追加は?→Code Snippetsプラグインで

今回は、環境のせいで、WordPressのfunctions.p ...

車・不動産・カタログなどに使えそう!WordPressコンタクトフォームにidやタイトルを渡して自動挿入させる方法

今回は、管理人が以前、お仕事でサイトを作ったときに使ったカスタマ ...

【WPプラグイン】Smart Custom FieldsとCustom Field Bulk Editorは相性悪い?(空リンク・真偽値フィールドに文字)

今回は、管理人がカスタムフィールド系の案件で使っているプラグイン ...