閲覧数:1,382 views
あなたが今、読んでいるカテゴリー:
wordpress
WordPressをお使いの方はおなじみであろうプラグイン「All in One SEO Pack」のメタデータについての記事です。この度SNSのメタタグに関する設定の一括変更が必要になったので調べてみました。
All in One SEO Packのバージョンは2.2.6.2で説明していきます。
ソーシャル設定はどこに保存されているの?
- 【テーブル】wp_postmeta
- 【meta_key】_aioseop_opengraph_settings
にシリアライズ化された状態で保存されています。シリアライズについては以下の記事が分かりやすいと思いますので、参照してください。
覚えておきたい「シリアライズ serialize」 | hijiriworld Web
対応表は以下の通りです。
名前 | 型 | 概要 | 該当するmetaタグの属性値 |
---|---|---|---|
aioseop_opengraph_settings_title | String | Title | og:title |
aioseop_opengraph_settings_desc | String | Description | og:description |
aioseop_opengraph_settings_image | String | Image | og:image |
aioseop_opengraph_settings_customimg | String | Custom Image | og:image |
aioseop_opengraph_settings_imagewidth | String | Specify Image Width | og:image:width |
aioseop_opengraph_settings_imageheight | String | Specify Image Height | og:image:height |
aioseop_opengraph_settings_video | String | Video | og:video |
aioseop_opengraph_settings_videowidth | String | Video Width | og:video:width |
aioseop_opengraph_settings_videoheight | String | Video Height | og:video:height |
aioseop_opengraph_settings_category | String | Facebook Object Type | og:type |
aioseop_opengraph_settings_section | String | Article Section | article:section |
aioseop_opengraph_settings_tag | String | Article Tags | article:tag |
aioseop_opengraph_settings_setcard | String | Twitter Card Type | twitter:card |
これが分かったところで何か得があるの?というお話ですが
公式TwitterアプリでTwitterカードがタイムラインに直接表示されるようになったので、Summary(画像が小さいカード)からSummary Image Large(画像がおおきいカード)に変更することになりました。こっちの方が大きくて目立ちますので。この件に関しては以下の記事を参照してください。
【Twitter】タイムラインにTwitterカードを表示する機能を実装か
記事ごとに設定が保存されているので、いちいち投稿の設定を手動で変更していたら時間がもったいないです。全てのソーシャル設定を一括変更したい場合にこの値が必要になってきます。今回の置換に関しては重複する値は無いと思うので「aioseop_opengraph_settings_XXXX」の部分は置換する際に不要かもしれませんが、あった方がより確実に変更できます。ということで、phpMyAdminを使用して、データベースの一括置換を行います。
今回使用した、一括置換のSQL文
WordPressの管理画面からではなく、データベースの内容を直接書き換えます。もし、この作業を行う場合は必ずデータベースのバックアップを取ってから作業してください。筆者はテストサーバーで試してから作業を行いました。テストサーバーをお持ちの方は一度、テストサーバーで動作確認を行ってからの作業を推奨します。
1 |
UPDATE wp_postmeta SET meta_value=REPLACE(meta_value,"\"aioseop_opengraph_settings_setcard\";s:7:\"summary\";","\"aioseop_opengraph_settings_setcard\";s:19:\"summary_large_image\";") WHERE meta_key LIKE "_aioseop_opengraph_settings"; |
- テーブル「wp_postmeta」 の
- フィールド(カラム)「meta_key」の値が「_aioseop_opengraph_settings」の
- フィールド(カラム)「meta_value」に格納されている値の
- 「”aioseop_opengraph_settings_setcard”;s:7:”summary”;」を
- 「”aioseop_opengraph_settings_setcard”;s:19:”summary_large_image”;」に変更
というSQL文です。Twitterカードの設定は「aioseop_opengraph_settings_setcard」が該当します。s:7がs:19に変わっているのは、summary_large_imageの文字列サイズ(UTF-8です)が19バイトの為です。
約300個のデータの置換に0.1秒かかっていません。楽ちんですね。実動作で問題が発生していないことは、筆者の環境で確認済みです。
さいごに
All in One SEO Packのソーシャル設定を一括変更する機会はあまりないかもしれませんが、使用しているプラグインのメタデータの構造は知っておいて損はないかと思います。参考になりましたら幸いです。