カスタム投稿のarchiveページのタイトル・ディスクリプションの設定の仕方

カスタム投稿のarchiveページのタグ付けの仕方-サムネイル WEB・デザイン

今回はWordPRESSのプラグイン【Custom Post Type UI】で作ったカスタム投稿のarchiveページへのタイトルタグ・ディスクリプションタグの設定の仕方をご紹介します。

※Custom Post Type UI=以下 カスタム投稿

カスタム投稿でWordPRESS内にメニューを増やして、「ブログ」以外にも「お知らせ」や「活動報告」などのページを作っている方もいるかと思います。

その各ページのシングル(投稿)には、各ページのAll in One SEOで【タイトルタグ・ディスクリプションタグ】の入力が可能です。

下記の画像の様に、投稿作成画面の本文下の部分にAIOSEOという名前で設定できる部分がありますね!

カスタム投稿のタグ設定画像1

当ブログを読まれている方は、ここまでは、特に問題無しかと思います。

さて、本題に。

まず、All in One SEOの旧Verではarchiveページのタイトルタグ・ディスクリプションタグが入力する場所がありませんでした。

archiveページの同じ名前の固定ページを作成して、その固定ページにAll in One SEOでタイトルタグ・ディスクリプションタグを入力しても反映無し。

ただ、これは旧バージョンの時で、2020/12月頃にリニューアルされた新All in One SEOは入力画面が出来ています。

スポンサーリンク

新All in One SEOでarchiveページのタイトル・ディスクリプション設定

まず、All in One SEOのプラグインをインストールして、メニューを開きます。

カスタム投稿のタグ設定画像2

次にAll in One SEOのメニューの 「検索の外観」 を開きます。

カスタム投稿のタグ設定画像3

次にそのメニューの中の「アーカイブ」 を開きます。

すると、カスタム投稿で追加した項目のarchiveページが表示されています。

カスタム投稿のタグ設定画像4

あとは、そこの項目のタイトル・ディスクリプションを入力すればOK。

カスタム投稿のタグ設定画像5

新All in One SEOになると、とても簡単ですね!!

さて、次は旧バージョンのAll in One SEOを使用している方のarchiveページのタイトル・ディスクリプション設定方法もご紹介します。

スポンサーリンク

旧バージョンのAll in One SEOでarchiveページのタイトル・ディスクリプション設定

まず、先述でもお伝えしているとおり、旧バージョンのAll in One SEOではarchiveページのタイトル・ディスクリプション設定が出来ませんでした。

じゃあどうしたら良いかというと、コードで直接入力する方法をとります。

functions.phpのファイルへ入力しますので、コードが全くちんぷんかんぷん。functions.phpってそもそも何?って方は、あまり触らない方が良いです。

失敗したらサイトの表示が崩れたり表示されなくなる場合もあるので。

では、変更の方法ですが、下記コードをfunctions.phpに追記して更新するだけです。

function change_title($title){
if(is_post_type_archive('カスタム投稿タイプ名')){
$title = 'タイトル';
}

return $title;
}
add_filter('aioseop_title', 'change_title');

こちらの

is_post_type_archive('カスタム投稿タイプ名')

の部分をご自身で作ったカスタム投稿名(スラッグ名)を記載。

下記の図の場合だと、このような表記になります。

is_post_type_archive('news')
カスタム投稿のタグ設定画像6

そして、

 $title = 'タイトル';

の部分にご希望のタイトルを入力。

例えば、

 $title = '〇〇サイトの最新お知らせページ';

これで、更新すれば、archiveページにタイトルが反映されています。

ちなみに、カスタム投稿が複数あります!って場合だと。

function change_title($title){
if(is_post_type_archive('カスタム投稿タイプ名')){
$title = 'タイトル';
}
// カスタム投稿が複数ある場合は下記のように追加で増やしていく
if(is_post_type_archive('カスタム投稿タイプ名')){
$title = 'タイトル';
}
return $title;
}
add_filter('aioseop_title', 'change_title');

上記のように、

if(is_post_type_archive(‘カスタム投稿タイプ名’)){
$title = ‘タイトル’;
}

の部分を増やしていくだけです。

実際に増やした例が下記のコードです。

news以外にblog と work のカスタム投稿がある場合とします。

function change_title($title){
if(is_post_type_archive('news')){
$title = '〇〇サイトの最新お知らせページ';
}
if(is_post_type_archive('blog')){
$title = '〇〇サイトのブログページ';
}
if(is_post_type_archive('work')){
$title = '〇〇サイトの仕事実績紹介ページ';
}
return $title;
}
add_filter('aioseop_title', 'change_title');

以上となります。

次はディスクリプションタグです。

やり方はタイトルタグと同じで、タグが少し変わるだけです。

function change_description($description){
if(is_post_type_archive('カスタム投稿タイプ名')){
$description = 'ディスクリプション';
}
return $description;
}
add_filter('aioseop_description', 'change_description');

カスタム投稿が複数の場合も同じです。

例えば、下記のような感じになります。

function change_description($description){
if(is_post_type_archive('news')){
$description = 'お知らせページのご紹介';
}
if(is_post_type_archive('blog')){
$description = 'ブログページのご紹介';
}
if(is_post_type_archive('work')){
$description = '仕事実績紹介ページのご紹介';
}
return $description;
}
add_filter('aioseop_description', 'change_description');

複数の場合は項目ごとに追加しないといけませんが、All in One SEOで設定しても項目ごとに入力は必要ですし、functions.phpに入力して保存するだけなので、そこまで難しい作業では無いかと思います。

ほとんどの方が、ここで終了ですが、

一部、カスタム投稿の内容をトップページや固定ページに一部呼び出しなどで表示している場合の注意点です。

スポンサーリンク

・Custom Post Type UI(カスタム投稿)の投稿内容の一部を固定ページ(トップページ)に表示している場合は新All in One SEO の設定が反映されない!?

例えば、下記のようなコードをトップページに記載して、トップページにカスタム投稿を表示している方向け。

<?php
$wp_query = new WP_Query();
$param = array(
'posts_per_page' => '8', 
'post_type' => 'news', //カスタム投稿タイプの名称を入れる
'post_status' => 'publish', //取得するステータス。publishなら一般公開のもののみ
);

この設定の場合は、何故か新All in One SEOでは、トップページのタイトルやディスクリプションタグが反映されずに、

記載しているカスタム投稿のタイトルやディスクリプションタグが反映されてしまう。理由は不明。

※2021年4月2日 追記更新 上記のようなコードの場合でも表示する方法解明 ページ下部へ

こんな感じになります。

新All in One SEOでしっかりトップページのタイトルやディスクリプションタグは記載している。

All-in-One-SEO-Packイメージ画像4

ただ、新All in One SEOのSEO分析やSEOチェキなどで調べると、トップページの中のカスタム投稿タイプのラベル名(お知らせ)がタイトルに反映されていた。

All-in-One-SEO-Packイメージ画像5

ソースで確認しても<title> </title>の間は「お知らせ」となっていました。

All in One SEO Pack内の設定をいろいろ試したが、上手くいかず。

とりあえず、私の場合はここの部分が解決しないとtitleタグなのでSEOに影響を及ぼす。

その為、All in One SEO Packをダウングレードとして旧Verに戻してしばらく様子見をすることにしました。

旧バージョンのAll in One SEOだと、そもそもAll in One SEOにカスタム投稿のarchiveページのタイトル・ディスクリプションタグ入力画面は無いからか、

このような問題は発生無し。

そして、archiveページへのタイトル・ディスクリプションタグは、上記記載のfunctions.phpへの入力で対応可能ですし。

このように、All in One SEOは非常に便利ですが、他のプラグインとの相性が一部不具合になる部分もあるので、

ご自身のサイトにあった対応で行ってくださいませ。

※All in One SEOのダウングレードの仕方は下記URLのAll in One SEOプラグインのダウンロードページの最下部にあるバージョン

選択で3.7.1を選びダウンロード。

あとは、WordPRESSでAll in One SEOプラグインの3.7.1を読み込みだけです。

※バージョンアップ後のAll in One SEOプラグインがある場合はアンインストール&削除してからインストールしてくださいね。

All in One SEOプラグインのダウンロードURLはこちら

All in One SEO – Best WordPress SEO Plugin – Easily Improve SEO Rankings & Increase Traffic
元祖 WordPress SEO プラグイン。 包括的な SEO ツールとスマートな SEO 最適化を使用して、WordPress SEO のランキングとトラフィックを改善します。
All-in-One-SEO-Packイメージ画像6

・Custom Post Type UI(カスタム投稿)の投稿内容の一部を固定ページ(トップページ)に表示している場合でも新All in One SEO の設定が反映する方法

※2021年4月2日 追記更新

やはり、脆弱性やこれからのことを考えると早めに新All in One SEOの方へ切り替える方が良いと思い、試行錯誤した結果、反映することができました。

今回は、このコードのパターンでのご紹介です。

<?php
$wp_query = new WP_Query();
$param = array(
'posts_per_page' => '8', 
'post_type' => 'news', //カスタム投稿タイプの名称を入れる
'post_status' => 'publish', //取得するステータス。publishなら一般公開のもののみ
);

 $wp_query->query($param);
if($wp_query->have_posts()): while($wp_query->have_posts()) : $wp_query->the_post();
?>

このコードの青文字部分のwp_queryをthe_queryに変更するだけです。

こんな感じになります。

<?php
$the_query = new WP_Query();
$param = array(
'posts_per_page' => '8', 
'post_type' => 'news', //カスタム投稿タイプの名称を入れる
'post_status' => 'publish', //取得するステータス。publishなら一般公開のもののみ
);

 $the_query->query($param);
if($the_query->have_posts()): while($the_query->have_posts()) : $the_query->the_post();
?>

これで、カスタム投稿の一部を表示すると、特に問題無く表示されて、

新All in One SEOに切り替えても、タイトルが入力された通り表示されます。
では今回はこの辺で。

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