All In One SEO Packで自動挿入される署名や無駄な改行を削除する方法

クリスマス
WordPressはもともとSEOに強いCMSだと言われておりますが、初期状態のままだとそのSEOの強さには限りがある。
補足:CMSとはコンテンツ・マネージメント・システムの略で、ウェブサイトの管理を簡易化させるためのシステムのことです。

そのため、SEOの設定を強化するためのプラグインがいくつもあり、私はその中で「All In One SEO Pack」というものを使用している。
もう4年ほど使っております。
これは有名なプラグインなので、使っている人も多いのではないでしょうか。
参考リンク:<a href=”https://ja.wordpress.org/plugins/all-in-one-seo-pack/” target=”_blank”>All in One SEO Packの公式ダウンロードページ

All In One SEO Packはアップデートによっていつの頃からかサイトマップ(Sitemap.xml)の生成やソーシャルのheader設定までも行えるようになった。
それまではサイトマップの生成に「Google XML Sitemaps」というプラグインを使用していましたが、それすら必要なくなってしまいました。

All In One SEO Packでのサイトマップ生成は今のところ問題も起きておりません。
それほど優秀かつ便利なプラグインなのです。
参考リンク:Google XML Sitemapsの公式ダウンロードページ

しかし無駄なソースがある

All In One SEO Packはそれほど素晴らしいプラグインなのでありますが、昔から唯一気に入らないのは「無駄なソースが自動で挿入される」という点がある。

All In One SEO Packを導入したそのままの状態だとhead要素内は以下のような感じのソースになる。
head要素のソース

上画像の中でAll In One SEO Packで自動挿入されたコードは以下の部分である。
All In One SEO Packのソース
プラグイン作者の署名や無駄な改行が発生してしまうのです。

ちなみに私はheader.phpには無駄な改行は1つもないように作っています。
それなのに改行が勝手に発生してしまいます。
見苦しいったらありゃしない。
ソースなんてほとんど誰も見ないのはわかりますが、見えてしまう以上はその美しさにもこだわりたいのは私だけでしょうか。

今回はこの作者の署名と改行を削除し、綺麗なコードに成型する手順を解説します。
WordPress本体やプラグインはGPLライセンスなので、ソースコードを自分の好きなように勝手に改変しても問題ありません。

素晴らしいプラグインを作ってくれたことは感謝していますが、管理画面内のみならず、公開するソース内にまで勝手に署名を挿入されるとなると削除対象である。

プラグイン作者の署名を削除する方法

プラグイン作者の署名を削除するには、

wp-content/plugins/all-in-one-seo-pack

のディレクトリ内にあるaioseop_class.phpをテキストエディタで開きます。
そして、そのテキストエディタの検索機能を使い、<!– All in One SEO Packを検索します。
テキストエディタで検索

すると、1700行目付近にそのコードが見つかります。(バージョン2.2.7.5の場合)
バージョンが違ってもだいたいこのあたりの行で見つかるはずです。
検索結果

上画像のコードの中で削除する行は、

echo "\n<!-- All in One SEO Pack $this->version by Michael Torbert of Semper Fi Web Design";
if ( $this->ob_start_detected )
  echo "ob_start_detected ";
echo "[$this->title_start,$this->title_end] ";
echo "-->\n";

の5行です。
削除してしまっても良いし、行頭に//を付けてコメントアウトしても良いでしょう。
行頭にコメントアウト

同じように/all in one seo pack –>を検索すると、1814行目で見つかります。(バージョン2.2.7.5の場合)
コードを検索

以下の1行だけを削除またはコメントアウトさせます。

echo "<!-- /all in one seo pack -->\n";

以上で完了です。
aioseop_class.phpを上書き保存して上書きアップロードすると、以下のようにプラグイン作者の署名は消えています。
作者の署名を削除

無駄な改行を削除する手順

All In One SEO Packによって無駄な改行が発生するかどうかは、head要素内に挿入されるmeta要素の数などによって異なってくる。

例えば、アーカイブページ(home.phpやcategory.php、date.phpなど)と固定ページや投稿ページ(page.phpやsingle.php)などでは挿入されるコード数が異なるため、改行の位置や数が異なる可能性があります。
今回は私が実際に行った作業を紹介しますが、作業をし終わった後に自分でソースを確認すると良いでしょう。

まず、先ほどと同じくaioseop_class.phpのファイルを開き、<link rel=’prev’を検索します。だいたい1800行目付近で見つかります。
テキストエディタで検索

そのすぐ下に<link rel=’next’のコードがあり、そのまた下に$meta_stringechoしている行があると思います。
メタ要素を出力している行

上画像の中の$meta_stringの直後にある¥nを削除します。
補足:¥nとは改行を意味しています。

具体的には以下のようなコードだったのを、

if ( $meta_string != null ) echo "$meta_string\n";

以下のようにするのです。

if ( $meta_string != null ) echo "$meta_string";

以上で作業は終わりです。
再びaioseop_class.phpを上書きアップロードすれば、無駄な改行が消えていると思います。
綺麗になったソース
一応、アーカイブページだけでなく固定ページや投稿ページなどのソースも確認しておくと良いでしょう。

もしまだ不要な改行が残っている場合は、aioseop_class.phpファイル内で<meta name=”description”<link rel=”canonical”を検索し、その直後にある¥nあたりを削除したりして試すと上手くいくでしょう。