数回にわたって、WordPress SEO対策の定番であるWPプラグイン「All In One SEO Pack」(以下、aioseop)をblogに書きましたが、2013年8月19日に新しいバージョン「v2.0.3」がリリースされました。
Change Log v2.0.3
- NEW: XML Sitemap Module – Generate an submit an XML Sitemap from All in One SEO Pack
- Added separate title formats for author and date archives and new title formatting options for date archives
- Added new robots meta options for NOODP and NOYDIR
- Added robots meta default controls for NOINDEX by post type and split the control for NOINDEX of archives
- Preview snippet dynamically updates as you type your meta title or meta description
- Added rel prev / next meta for paginated content
- Feature Manager dynamically saves and updates settings
- i18n fixes, updated .pot file for translations
- Bug fixes
今回のバージョンより「XML Sitemap」が作成できるようです。筆者は、WPプラグイン「Google XML Sitemaps」をよく使っているのですが、aioseopで作成してくれるなら、これに一本化できそうで嬉しいです(使い物になるか検証中)。
さっそく、「WordPress SEO対策 All in One SEO Packのdescription出力の改造」でご紹介させていただきました便利なフィルターフック ‘aioseop_description’ に影響がないか「v2.0.2」と今回の「v2.0.3」をdiffって差分を眺めてみました。
すると、あれ?w
if ( is_category() && $this->show_page_description() ) $description = $this->internationalize( category_description() ); elseif ( is_tag() && $this->show_page_description() ) $description = $this->internationalize( tag_description() ); elseif ( is_tax() && $this->show_page_description() ) $description = $this->internationalize( term_description() ); elseif ( is_author() && $this->show_page_description() ) $description = $this->internationalize( get_the_author_meta( 'description' ) ); else if ( $is_front_page ) $description = trim( stripcslashes( $this->internationalize( $aioseop_options['aiosp_home_description'] ) ) ); else if ( is_single() || is_page() || is_home() || $this->is_static_posts_page() ) $description = $this->get_aioseop_description( $post ); /* if ( $this->is_static_front_page() ) $description = trim( stripcslashes( $this->internationalize( $aioseop_options['aiosp_home_description'] ) ) ); elseif ( !empty( $blog_page ) ) $description = $this->get_post_description( $blog_page ); if ( empty( $description ) && is_object( $post ) && !is_archive() && empty( $blog_page ) ) $description = $this->get_post_description( $post ); $description = apply_filters( 'aioseop_description', $description ); */ if ( isset($description) && ( $this->strlen($description) > $this->minimum_description_length ) && !( $is_front_page && is_paged() ) ) { $description = trim( strip_tags( $description ) );
フィルターフック ‘aioseop_description’ がコメント化されてるよぉ?
さらにソースを読むと、どうやらこのフィルターフック ‘aioseop_description’ はオミットされているわけではなく、メソッド「get_aioseop_description()」の奥底に移動されてました。厳密には、メソッド「get_aioseop_description()」に移動。
ということは、「v2.0.2」ではどんなページもフィルターフック ‘aioseop_description’で操作できた「meta description」が、「v2.0.3」では、aioseop_class.php 1105行目のとおり、固定ページ・投稿ページにしか通りません。今回のバージョンで、string関数系(substrなど)がようやくmbstring関数系に変わったので、「meta description」が空っぽ現象が直ると思いきや、まだ、不完全な部分があるようですし、まだフィルターフック ‘aioseop_description’ にお世話になりたいのに、固定ページ・投稿ページにしか効きません。
下記の選択肢となるのでしょうか。
- SEO的には、固定ページ・投稿ページのみでも概ねOKと思いますのでよしとする
カテゴリページ、タグページ、日付ページなどにdescriptionが出ないだけだしw
※カテゴリ・タグ・タクソノミー・Authorは、WP管理画面からそれぞれのdescriptionにセットすれば出力されそうです。 - aioseop改造
aioseop_class.php の1119行目あたりに、下記のようなコードを追加して(あんまり弄りたくないなぁ~)、独自のフィルターフック ‘aioseop_my_description’ を作っちゃう。$description = apply_filters( 'aioseop_my_description', $description );
- aioseop補助プラグイン を自作
出力するHTML5全体をob_startでバッファリングして、そのバッファ内容から「meta description」を補完するような aioseop補助プラグイン を自作する。
※既にあるOGP関連のWPプラグインは、前から満足いかない部分があって、現在、筆者の方でOGP出力のプラグインを開発中なのですが、aioseop補助機能も実装したいと思ってます。
いろいろ悩みます。
以上、まとまりのない記事になってしまいましたが、「All In One SEO Pack」の新バージョン「v2.0.3」へアップデートされる方のご参考になりましたら幸いです。
All in One SEO Pack v2.1.1で、フィルターフック ‘aioseop_description’がどんなページでも通るようにロジックが戻ったようです。