お問い合わせはコチラから

SEO SIMPLE PACKでmeta descriptionが出力されない時の対処方法

サイト運営

SEOプラグインと言えば、All In ONE SEOかyoast SEOがプラグインの定番です。日本だとAll in One SEOをインストールしている人が多いかもしれません。

この2つのプラグインはリリース当初は無料版でもいろんな機能が使えたのですが、その後、無料版の機能削減がすざまじく、フックを使わないとほとんどカスタマイズが出来ない状態になってしまい、あまり使いたくないプラグインになり下がりました。

そんな中、シンプルな機能を売りとしてリリースされたSEO SIMPLE PACKは、まだ発展途上という感じですが、フックなどを使うと十分使えるレベルなので気に入って使っています。

SEO SIMPLE PACK
This is a very simple SEO plugin. You can easily set and customize meta tags and OGP tags for each page.

SEO SIMPLE PACKを使っているサイトで、カスタム投稿のmeta descriptionが出力されていないことに気が付きました。

この記事では、SEO SIMPLE PACKでmeta descriptionが出力されない時の原因と対策についてまとめておきたいと思います。

#この記事で紹介している内容はSEO SIMPLE PACKのプラグイン本体の修正を行うカスタマイズを含んでいます。自己責任でお願いします。

meta descriptionが出力されないのはなぜ?

meta descriptionが出力されなかったのは、カスタム投稿タイプの記事でした。

そのカスタム投稿はacfとthe_contentフィルターを使ってコンテンツを生成しているので、本文は何も書かれていません。本文が無いので出力されないのは正しいと言えば正しい。

ですが、acfとthe_contentを通った後の内容が反映されて欲しい。

プラグインのソースを見たら、meta descriptionの生成部分でthe_contentフィルターを通す前のデータを参照しているようでした。

これは実務レベルだと結構大きな問題になります。

meta descriptionが出力される部分のソース

このままだと、ちょっと使えないので、ひとまずプラグインのソースを一時的に修正してみたら正常に表示されるようになりました。

プラグイン本体の修正になりますので、恒久的な処置にはなりません。間違えてアップデートしてしまったときのために記録として残しておきたいと思います。

githubがwordpress pluginの最新じゃない可能性があります。

File not found · ddryo/seo-simple-pack
Contribute to ddryo/seo-simple-pack development by creating an account on GitHub.
			// description
			if ( false !== strpos( $str, '%_page_contents_%' ) ) {
				$word_count = apply_filters( 'ssp_description_word_count', 120 );
				$content    = wp_strip_all_tags( do_shortcode( $obj->post_content ), true ); // 改行なども削除
				$content    = mb_substr( $content, 0, $word_count );
				$str        = str_replace( '%_page_contents_%', $content, $str );
			}

ショートコードの展開までは考慮してくれているようですが、the_contentフィルターを通していないので、the_contentフィルターを通して記事を作っている場合は中身が空っぽになります。

同じような話が以前にもあって、the_contentフィルターを通すのは忘れられていることが多いです。

meta descriptionが正常に出力されるための修正

非推奨:プラグインを直接書き換える方法

$obj->post_contentがmeta descriptionになります。

$objがWP_post objectでそのpost_contentを参照しているので、そこにthe_contentフィルターをかませます。

WP_Post – Class | Developer.WordPress.org
Core class used to implement the WP_Post object.
			// description
			if ( false !== strpos( $str, '%_page_contents_%' ) ) {
				$word_count = apply_filters( 'ssp_description_word_count', 120 );
				$content    = wp_strip_all_tags( do_shortcode( apply_filters( 'the_content',$obj->post_content) ), true ); // 改行なども削除
				$content    = mb_substr( $content, 0, $word_count );
				$str        = str_replace( '%_page_contents_%', $content, $str );
			}

推奨:フックでmeta descriptionを書き換えるカスタマイズ

プラグインを書き換えなくともフックでカスタマイズしても同じことができました。

プラグインの該当する部分をフックで上書きすればソースを修正する必要はありませんでした。

こちらの方が良いでしょうね。

function overwrite_ssp_description($ssp_description) {
	global $post;
	$post_id = $post->ID;
	
	if ( is_singular('xxx') ) {//特定の条件だけ適用
		$word_count = apply_filters( 'ssp_description_word_count', 120 );
		$content    = wp_strip_all_tags( do_shortcode( apply_filters( 'the_content',$post->post_content) ), true ); // 改行なども削除
		$content    = mb_substr( $content, 0, $word_count );
        return $content;
    }
    return $ssp_description;
}
add_filter('ssp_output_description', 'overwrite_ssp_description');

まとめ

Swellの作者さんのプラグインなのでブログメインの使い方でしかテストしていないのかな?と思いますが、記事が空っぽでthe_contentを通して生成している場合にも是非対応してほしいところです。

この記事を書いた人
ブーン

はるばる日本よりオランダ王国へやってまいりました。
自分の経験が少しでも参考になれば嬉しいです。
お問い合わせは、『こちら』からお願い致します。

\ブーンをフォロー/
スポンサーリンク
サイト運営
\シェアお願いします!/
\ブーンをフォロー/
こんな記事も読まれています

失敗しないレンタルサーバーランキング

mixhost

不正アクセスに強くて使いやすいおススメサーバー
\本サイトで利用中/
メリット①:自動ウィルス駆除対応
メリット②:サイトの表示速度が速い!
メリット③:転送量の上限が多い!
メリット④:自由にプラン変更ができ、アクセス増にも対応できる!
メリット⑤:バックアップデータが無料で復元できる!
メリット⑥:Wordpressが簡単にインストールできる!
メリット⑦:どのプランでも初期費用が無料!
メリット⑧:10日間の無料お試し期間と30日の返金保証!

Conoha Wing

国内Wordpress最速の最強サーバー
メリット①:圧倒的な表示速度
メリット②:レンタルサーバーと独自ドメインがセットでお得◎
メリット③:プラン変更はすべてのプランで自由自在
メリット④:一か月の利用転送量の制限が緩い(9TB~)
メリット⑤:WordPresサイトの移行が簡単

エックスサーバー

国内シェアNo1の安定性と実績が魅力。ALL SSDで死角なしの万能サーバー。
メリット①:サイトの表示速度が安定して速い!
メリット②:アクセス負荷に強くて安定性が高い!
メリット③:24時間365日の充実サポートで安心!電話サポートもあり!
メリット④:転送量が多い!
メリット⑤:自動バックアップ機能付き!
メリット⑥:WordPressが簡単にインストールできる!
メリット⑦:10日の無料お試し期間がある!

タイトルとURLをコピーしました