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

All in One SEO(4.0以降)でdescriptionを読みだす方法

Woman Laptop Business  - junaida279 / Pixabay サイト運営

先日、All in One SEOが大幅にバージョンアップしてVer4になりました。

まず、名前が変わりました。

All in One SEO Pack ⇒ All in One SEO

あと、UIがかなり変更になってゴージャスになっています。

今回のバージョンアップは、名前の変更の影響や仕様変更が多く、フックやメタデータを読みだしてカスタマイズしている人には結構インパクトがあります。

この記事では、All in ONE SEOの最新バージョンで変更になった点をまとめておきたいと思います。

All in ONE SEO Pack変更点(Ver4.00)

100以上の機能強化とバグ修正が行われているので、その部分が既存ユーザーにとっては問題となる部分です。

バージョン4.0.0の新機能– 2020年11月14日にリリース

  • NEW –プラグインを完全に再構築してパフォーマンスとSEOを強化
  • NEW –サイトのSEO設定を合理化するオンボーディングウィザード
  • NEW –現在のSEOステータスを提供する一元化されたダッシュボード
  • NEW –投稿とページのTruSEO分析
  • NEW –競合他社のサイト分析を備えたSEOアナライザー
  • NEW –カスタマイズ可能なアクセス制御
  • NEW –内部設定のバックアップと復元
  • NEW –100以上の機能強化とバグ修正
  • 更新–PHPバージョンの最小互換性を5.4に更新

filter hook関数名の変更

フィルターフックの関数名がaioseopからaioseoに変更になっています。

フィルターフックでSEO周りをカスタマイズしている人は、関数名を変更する必要があります。

All in ONE SEO Packのフィルターフック関数名

aioseop_description
aioseop_keywords
aioseop_title

All in ONE SEO以降のフィルターフック関数名

aioseo_title
aioseo_description
aioseo_keywords

post_metaから独自テーブルへの移行

All in ONE SEO Packの時には、All in ONE SEO Packのカスタムフィールドはpost_metaに保存していました。

All in ONE SEOでは、post_metaへの保存はなくなり、独自テーブル(aioseo_posts と aioseo_terms)内の各フィールドに格納される仕様に変更されました。

All in ONE SEO Packの時代のpost_metaは、アップデート時にAll in ONE SEOの独自テーブルに移行されているようです。

この変更のインパクトは大きいです。

今までAll in ONE SEO Packのdescriptionを以下のように読みだしていた人は新しい投稿では今後使えなくなります。

<?php echo get_post_meta($post->ID, '_aioseop_description', true); ?>

All in ONE SEO Pack時代のpost_metaはそのまま残っているので、過去のpost_metaは読みだせます。

All in ONE SEOの独自テーブル(aioseo_posts と aioseo_terms)を読みだす方法

All in ONE SEOの独自テーブルを読みだすにはどうしたらよいでしょうか?

プラグインのソースを見たところ簡単に外部から使えるようになっていないので、独自テーブルを自前で読みだす必要があります。

独自テーブル(aioseo_posts と aioseo_terms)をwpdbに対応させる

独自テーブルは、Wordpressが最初から用意しているテーブルのように$wpdbで簡単にアクセスできません。

$wpdbからアクセスできるように変更します。

(非推奨)Wordpressコアファイルのソースを書き換える

検索すると、独自テーブルを$wpdbに対応させるために、Wordpress本体のソース(wp-includes/wpdb.php)を書き換える例が散見されます。

/**
	 * List of WordPress per-blog tables.
	 *
	 * @since 2.5.0
	 * @see wpdb::tables()
	 * @var array
	 */
	public $tables = array(
		'posts',
		'comments',
		'links',
		'options',
		'postmeta',
		'terms',
		'term_taxonomy',
		'term_relationships',
		'termmeta',
		'commentmeta',
	);

この配列に独自テーブルを追加することで、wpdbから独自テーブルにアクセスできるようになります。

(推奨)functions.phpでテーブルを追加する

WordPress本体のソース変更は絶対に避けないといけませんし、それ以外の方法があります。

以下のスニペットで、aioseo_postsに$wpdbでアクセスできるようになります。

<?php
// All In ONE SEOのaioseo_postsを$wpdbに対応させる
function add_db_aiso_desc() {
	global $wpdb;
   
	$table_name = $wpdb->prefix. "aioseo_posts";
    if (!isset($wpdb->aioseo_posts))
    {
        $wpdb->aioseo_posts = $table_name;
        $wpdb->tables[] = str_replace($wpdb->prefix, '', $table_name);
    }
}
add_action( 'init', 'add_db_aiso_desc');

独自テーブル(aioseo_posts と aioseo_terms)を読みだす

$wpdbでaioseo_postsにアクセスできるようになったので、あとはDBから直接読みだせばいいです。

PHPの関数だけでなく、記事中でも使えるようにショートコードも作っておきます。

function bfp_aiso_desc() {
	global $wpdb,$post;
	$desc = $wpdb->get_var( $wpdb->prepare( "SELECT description FROM $wpdb->aioseo_posts WHERE post_id = %d", $post->ID));
  return $desc;
}

//ショートコード
add_shortcode( 'aiso_desc', 'bfp_aiso_desc' );

関数の使い方

単純に置き換えてもらえば大丈夫です。

<?php echo bfp_aiso_desc(); ?>

description以外のフィールドを読みだすには?

まず、独自テーブル(aioseo_posts と aioseo_terms)のフィールド名を確認する必要があります。

そのためには、phpMyAdminなどのDBツールで、独自テーブル(aioseo_posts と aioseo_terms)の中身を確認すればフィールド名を確認するのが簡単です。

今回の記事のdescriptionとなっている部分を希望のフィールド名に書き換えれば同じように読みだすことができます。

まとめ

All in ONE SEOにバージョンアップした時に、バージョンアップの時間がかなりかかった記憶があります。大幅に仕様変更されたので、DBを書き換えていたのだと思います。

名前の変更で、フィルターフックの関数名が変更されたり、post_metaテーブルを使わなくなったりというのは、一般人には影響のない仕様変更ですが、カスタマイズしていた人にとってはかなりインパクトのある変更になっています。

All in ONE SEO Packでは動いていたのに、All in ONE SEOでは動かなくなったという場合には今回の記事を参考にしてみてください。

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

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

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

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

mixhost

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

Conoha Wing

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

エックスサーバー

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

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