ど素人から毛を生やす。<延>

HeadSpace2で入力がないときに指定の文言を出力する方法

Web > WordPress > プラグイン 2014年10月22日(最終更新:2年前)

このページは2014.10.22に作成されています。時代の流れとそぐわない可能性があったり、僕が今以上のど素人だった頃の記事だったりするので、新しい記事を探してみるのも良いかもしれません。

どもです。
TRPGがやりたい餅。です。

久しぶりですがWordPressの話題をば。

 

SEO対策プラグインとして名高いHeadSpace2。

こちらは記事毎にキーワードとディスクリプションを設定することができるプラグインです。
ただしこれ、テンプレートの方に記載が有る場合は、入力したものはその後ろに入る仕様です。

それは困るので、入力があるときはその内容だけを、入力がないときは指定の文言を出力するようにしたいと思います。

 

①一般的な方法 -管理画面から-

まずは、HeadSpace2の基本から。

管理画面の  設定 > HeadSpace で、編集画面を開きます。

h261022_1

で、表示させたい項目をクリックし、内容を入力します。

こちらで文言を入力した場合、自動的に記事毎に記載があればそちらを、なければこちらで入力した内容が出力されます。

なお、デフォルトではキーワードの項目がないので、ぶっちゃけ不要ですが表示させたい場合は上メニューの「ページモジュール」をクリック。

h261022_2

「Keywords」をドロップして、緑のエリアに持ってきます。

なお、デフォルト設定は「タグを使用する」「最大文字数0」になっているので、クリックして編集しておくと良いでしょう。

 

ちなみに、この画面で使えるタグは以下のものです。
現在の管理画面では一部未翻訳のところがあるので、Google先生に翻訳して貰いました。

%%date%% 記事/ページの日付と入れ替える
%%title%% 記事/ページのタイトルと入れ替える
%%sitename%% サイトの名前
%%excerpt%% (それが存在しない場合は、自動生成された)ポスト/ページの抜粋に置き換え
%%excerpt_only%% (自動生成せずに)ポスト/ページの抜粋に置き換え
%%tag%% 現在のタグ/タグに置き換え
%%category%% ポストのカテゴリに置き換え(カンマ区切り)
%%category_description%% カテゴリーdescription(説明文)と入れ替える
%%tag_description%% タグの記述に置き換え
%%term_description%% タームの説明に置き換え
%%term_title%% タームの名前に置き換え
%%modified%% 記事/ページの修正された時間と入れ替える
%%id%% 記事/ページのIDと入れ替える
%%name%% 記事/ページの著者のニックネームと入れ替える
%%userid%% 記事/ページの著者のユーザーidと入れ替える
%%searchphrase%% 検索ワードと入れ替える
%%currenttime%% 現在の時刻と入れ替える
%%currentdate%% 現在の日付と入れ替える
%%currentmonth%% 現在の月に置き換え
%%currentyear%% 現在の年に置き換え
%%page%% ページ番号と入れ替える(page 2 of 3)
%%pagetotal%% 現在のページの合計に置き換え
%%pagenumber%% 現在のページ番号に置き換え
%%caption%% 添付ファイルのキャプション

 

しかしこの編集機能、ひとつ重大な問題がありまして。

カスタム投稿タイプが複数ある場合、投稿タイプごとに表示を分けることができないのです。
しかも、「カスタム投稿タイプ名」を出力するタグもありません。
というわけで、複数のカスタム投稿に対応するためにはテンプレートに直書きするしかないのです。

たぶん。

 

②カスタム投稿タイプが複数ある場合 -テンプレートを-

さて、ここからが本番。

カスタム投稿が複数ある場合、Headspace2が用意してくれる編集画面では足りません。
しかし、テンプレートに直書きすると、投稿画面で設定した文言だけが上手く出てくれません。

そこで、Headspace2の記載がある場合とない場合で、ifをかけます。

<?php $_headspace_metakey = post_custom("_headspace_metakey"); if ( empty( $_headspace_metakey ) ): ?><meta name="keywords" content="none"><?php endif; ?>
<?php $_headspace_description = post_custom("_headspace_description"); if ( empty( $_headspace_description ) ): ?><meta name="description" content="none"><?php endif; ?>

これで、キーワード、ディスクリプションがない場合のみ、metaタグが表示されるようになります。

content="none"の中身を適当に調整して、完了です(゚∀゚)

この記事は役に立ちましたか?
  • _(:3」∠)_ 面白かった  (0)
  • (・∀・) 参考になった (0)
  • (`・ω・´) 役に立った (0)