例えばJINやSANGOなど、テーマ内でメタディスクリプションやタイトルタグを設定できるものを使っている場合、テーマを乗り換えるとそれらの設定も全て再設定しなおさないといけなくなります。
このページでは、そういったテーマ側の設定をSEO SIMPLE PACKに引き継ぐためのコードを紹介します。
コードの追記場所について
今回ご紹介するコードは、子テーマのfunctions.php
や、自作したプラグインなどのファイルにコピペしていただければと思います。
子テーマのfunctions.phpに追記する方法
まず、「外観」>「テーマエディター」へと進んでください。
「テーマエディター」をクリックすると、現在使用中のテーマのstyle.css
ファイルが開いた状態になっています。
この画面の右側にある、「テーマのための関数 (functions.php)」と書かれたファイルを選択してください。
この時、編集するテーマがSWELLの子テーマになっていることを一応確認することを忘れないようにしてください。
functions.php
ファイルの編集画面に移ったら、ファイルの一番最後にコードを追加します。
コードを貼り付けれたら、編集ページの下部にある「ファイルを保存」ボタンで保存しましょう。
引継ぎコードの概要
テーマによってどこに情報が保存されているかが変わるので細かい部分は異なりますが、基本的には、
- 乗り換え前のテーマの情報を取得
- フックを使ってSEO SIMPLE PACKの出力を上書き
という流れは同じです。
例えば、メタディスクリプションの設定を古いテーマから引き継ぐための方法は以下のような感じになります。
add_filter( 'ssp_output_description', function( $ssp_description ) {
$post_id = get_the_ID(); // その記事のIDを取得
$old_meta = '古いテーマから情報を取得';
$ssp_meta = get_post_meta( $post_id, 'ssp_meta_description', true );
// その記事にSSPの設定がまだなくて、古いテーマ側での設定があれば、後者を出力
if ( empty( $ssp_meta ) && $old_meta ) {
return $old_meta;
}
return $ssp_description;
});
このざっくりとした流れは、テーマの乗り換えではなくSEO系のプラグインの乗り換えでも同じです。
「All in One SEO Pack」から「SEO SIMPLE PACK」へ引き継ぐコードを別記事で紹介していますので、そちらも参考にしていただくといいかなと思います。
SEO SIMPLE PACKで用意されているフック一覧
- og:title用 :
'ssp_output_og_title'
- og:description用 :
'ssp_output_og_description'
- og:url用 :
'ssp_output_og_url'
- og:locale用 :
'ssp_output_og_locale'
- og:type用 :
'ssp_output_og_type'
- og:url用 :
'ssp_output_og_url'
- twitter:site用 :
'ssp_output_tw_site'
- twitter:card用 :
'ssp_output_tw_card'
- fb:app_id用 :
'ssp_output_fb_appid'
- fb:admins用 :
'ssp_output_fb_admins'
- article:publisher用 :
'ssp_output_fb_publisher'
注意点
今回紹介するコードは、「出力を書き換える」だけのコードです。
つまり、記事の編集画面下にある SEO SIMPLE PACKの設定エリアは空白のままとなります。
このエリアは変わらない
このSEO SIMPLE PACKの設定画面から改めてディスクリプションなどを入力すると、その新しい設定が優先的に表示されます。
テーマごとのコード紹介
では、実際にいくつかのテーマを例にしてコードを紹介していきます。
※ 紹介しているテーマのアップデートによって、設定項目が増減したりはしているかもしれません。
JIN
JINは、テーマ側から
- タイトルタグ
- メタディスクリプション
- メタロボット(noindexとかのやつ)
を設定することができますので、この3つに対しての引継ぎコードを紹介します。
// タイトルタグ
add_filter( 'ssp_output_title', function( $ssp_title ) {
$jin_meta = get_post_meta(get_the_ID(), 'jin_seotitle', true);
$ssp_meta = get_post_meta(get_the_ID(), 'ssp_meta_title', true);
if ( empty( $ssp_meta ) && $jin_meta ) {
return $jin_meta . ' | '. TITLE;
}
return $ssp_title;
});
// メタディスクリプション
add_filter( 'ssp_output_description', function( $ssp_description ) {
$jin_meta = get_post_meta(get_the_ID(), 'post_desc', true);
$ssp_meta = get_post_meta(get_the_ID(), 'ssp_meta_description', true);
if ( empty( $ssp_meta ) && $jin_meta ) {
return $jin_meta;
}
return $ssp_description;
});
// メタロボット
add_filter( 'ssp_output_robots', function( $ssp_robots ) {
$jin_noindex = get_post_meta(get_the_ID(), 'post_noindex', true);
$ssp_meta = get_post_meta(get_the_ID(), 'ssp_meta_robots', true);
if ( empty( $ssp_meta ) && !empty( $jin_noindex ) ) {
return 'noindex';
}
return $ssp_robots;
});
JINからの乗り換えサポート用プラグインを使っている場合は、すでにコードが内包されているので自ら追記する必要はありません。
ただし、乗り換えサポート用プラグインを停止する時は、このコードを自分で追記していただく必要がございます。(手動でSEO SIMPLE PCAKに書き写した場合は不要です)
SANGO
SANGOは、テーマ側から
- タイトルタグ
- メタディスクリプション
を設定することができますので、この2つに対しての引継ぎコードを紹介します。
// タイトルタグ
add_filter( 'ssp_output_title', function( $ssp_title ) {
$post_id = get_the_ID();
$sng_meta = get_post_meta( $post_id, 'sng_title', true );
$ssp_meta = get_post_meta( $post_id, 'ssp_meta_title', true );
if ( empty( $ssp_meta ) && $sng_meta ) {
return $sng_meta;
}
return $ssp_title;
});
// メタディスクリプション
add_filter( 'ssp_output_description', function( $ssp_description ) {
$post_id = get_the_ID();
$sng_meta = get_post_meta( $post_id, 'sng_meta_description', true );
$ssp_meta = get_post_meta( $post_id, 'ssp_meta_description', true );
if ( empty( $ssp_meta ) && $sng_meta ) {
return $sng_meta;
}
return $ssp_description;
});
SANGOからの乗り換えサポート用プラグインを使っている場合は、すでにコードが内包されているので自ら追記する必要はありません。
ただし、乗り換えサポート用プラグインを停止する時は、このコードを自分で追記していただく必要がございます。(手動でSEO SIMPLE PCAKに書き写した場合は不要です)