Seesaaブログのカスタムフィールド

Wordpressにはカスタムフィールドというオプションで追加できるフィールドがあります。

Seesaaブログのテンプレートをカスタマイズしているとき、もうひとつ余分にフィールドがあれば色々な制御ができるのにと不満に感じることがありませんか?

例えば記事ごとに meta description を自由文にしたいとか、アドセンスの広告非表示を制御したいとか、パンくずリストを2階層にしたいとか。

よくよく記事作成画面を眺めていると使ってない項目があって、上手くやればWordpressのカスタムフィールド的に使えそうなSeesaa仮想カスタムフィールドを5つ発見。

できないと諦めていた Seesaa ブログの制御が結構できるようになってきました。

Sponsored Link

カスタムフィールドとして利用できる記事作成画面の5つのフィールド

Seesaaブログの記事作成画面の「詳細設定」部分をスクリーンショット見ながら Seesaa 仮想カスタムフィールドを確認しましょう。

Seesaaブログの記事作成画面

  • 1. コメント:オプションボタン ×4
  • 2. トラックバック:オプションボタン ×4
  • 3. 広告の表示:オプションボタン ×2
  • 4. キーワード:テキストフィールド
  • 5. 追記リンク文言:テキストフィールド

これら5つのフィールドの各Seesaa変数と何処に反映できるのかまとめたのが下表です。

フィールド変数反映箇所
コメントarticle.accept_comment記事コンテンツ
トラックバックarticle.accept_tb記事コンテンツ
広告の表示article.affiliate_link記事コンテンツ
キーワードextra_keywords記事コンテンツ、HTML
追記リンク文言article.body_continue_text記事コンテンツ

例えばコメント項目はオプションボタンが4つあるので、article.accept_comment 変数で4パターンのフラグが取得できます。そしてこの変数はデザイン>記事コンテンツの設計要素内にのみ適用できます(反映箇所)。

キーワード項目は記事コンテンツだけでなく HTML にも反映できます。冒頭で例示した「meta description に自由テキスト文を書き出す」というようなことも可能。Wordpress の All in One SEO の descriptionと同じ使い方です。

かなり長くなるので、この記事では変数の概要と利用できそうなアイディアを挙げるまでで、実際の設定方法や詳細は別記事で解説することにさせて下さい。

コメント受付フラグ変数:article.accept_comment

記事ごとにコメントの受付と表示の組み合わせを決めるのが記事作成画面の詳細設定にある「コメント」オプション。記事ごとにアドセンス広告を表示したり非表示にしたりするフラグとして使えます。

過去ログ「ポリシー違反にせずコメントを使ってアドセンス広告を非表示にする方法」で既出ですが、あの記事では「コメントの受付有無」の2択で、今回は受付×2と表示×2の4択4フラグになります。前回の使い方はこちら。

<% if:article.accept_comment %>
<!-- ここにアドセンス広告コード -->
<% else -%>
<!-- ここにそれ以外の代替広告コード -->
<% /if -%>

コメント有無の真偽のみ判断しています。

選択肢フラグ変数の使い方
受付/表示
〇/〇
1<% if:article.accept_comment == 1 %> 〜 <% /if %>
受付しない/表示しない
×/×
0<% if:article.accept_comment == 0 %> 〜 <% /if %>
受付しない/表示
×/〇
2<% if:article.accept_comment == 2 %> 〜 <% /if %>
受付/承認後表示
(承認制)
3<% if:article.accept_comment == 3 %> 〜 <% /if %>

上の表は記事作成画面の詳細設定のコメントフィールド選択とフラグ、変数の使い方をまとめたものです。反映できる範囲は記事コンテンツ内のみです。

広告を4パターン準備しておいてオプションボタンで記事に即した広告を表示し分けるなどに活用できます。でもコメント欄はフルに活用されることが多いのでここはノータッチの方が良いですよね。

記事コンテンツHTMLの記述例

<% if:article.accept_comment == 0 %> 広告1 <% /if %>
<% if:article.accept_comment == 1 %> 広告2 <% /if %>
<% if:article.accept_comment == 2 %> 広告3 <% /if %>
<% if:article.accept_comment == 3 %> 広告4 <% /if %>

4つのフラグをフルに活用するなら次のトラックバックの方が利用しやすそうです。

ちなみに、同じコメントフラグの article.accept_comment_show はコメント表示の有無のみを判別する変数で、article.accept_commentの下位に属することになりますか。

トラックバック受付フラグ変数:article.accept_tb

Twitter や Facebook などの SNS が普及しましたからトラックバックの利用価値はどうですか。トラックバックは使わないならこの4つのオプションを活用です。

コメント受付フラグ変数 article.accept_comment の comment の部分を tb に置き換えるだけで選択肢もフラグも同じです。同様に article.accept_tb_showはトラックバック表示フラグになります。

参考:トラックバック表示フラグで広告表示・非表示を制御する

<% if:article.accept_tb_show %>
<!-- ここにアドセンス広告コード -->
<% else -%>
<!-- ここにそれ以外の代替広告コード -->
<% /if -%>

このフラグで記事下にトラックバックが表示される記事とされない記事ができますから、ボクは記事下のトラックバック自体を非表示にしています。もちろん削除しても構いません。

スタイルシート
#trackback{display:none}

広告表示フラグ変数:article.affiliate_link

広告表示フラグ変数と呼ぶか分りませんが、詳細設定にある「広告の表示」の有効/無効オプションフラグを識別する変数がこれです。

選択肢フラグ変数の使い方
有効1<% if:article.affiliate_link == 1 %>
無効0<% if:article.affiliate_link == 0 %>

まずここで言う「広告」とは記事下に挿入される Seesaa 広告のことです。「設定>詳細設定>広告の設定」画面の「記事下広告の表示」で「広告を表示する」を選択し、かつ記事作成画面の「広告の表示」で「有効」が選択されると表示されます。

広告を書き出す JavaScript が デザイン>HTML にあります。デフォルトテンプレートであれば id="container" の直下に見つかるはずです。

<script type="text/javascript" language="JavaScript" src="<% site_info.blog_url %>/contents/js/ad_plugin.js"></script>

広告表示フラグを利用するとき JavaScript が生きていたら記事下広告が表示されるので、下のようにコメントアウトして準備完了。

<!--
<script type="text/javascript" language="JavaScript" src="<% site_info.blog_url %>/contents/js/ad_plugin.js"></script>
-->

広告表示フラグの活用アイデア

先述の記事ごとにアドセンス広告を表示/非表示を設定するのであれば、article.accept_tb よりもこちらのほうがよかったですね、2択だし。以前の記事の執筆時点で article.affiliate_link 変数の解析できていなかったので、これからこのブログは広告表示フラグにカスタマイズし直します。

とにかく2択ですし見出しも広告の表示だからストレートで分りやすい。アドセンスブログであれば、広告の表示を有効にしたらアドセンス広告、無効にしたら代替ASP広告と迷わない。

記事コンテンツHTMLの記述例

<% if:article.affiliate_link == 1 %>
アドセンス広告コード
<% /if %>
<% if:article.affiliate_link == 0 %>
代替ASP広告コード
<% /if %>

if 〜 else 〜 /if で書いたらなぜか稼働しなかったので if条件を並記しています。

追加キーワード変数:extra_keywords

記事コンテンツ内だけでなく HTML にまで反映できるフリーテキストが詳細設定の「キーワード」。フリーテキストですから特にフラグなどはありません。これはかなりの優れモノです。

活用するにはHTMLの下準備と心の準備の両方が必要です。追加キーワードは記事ごとのキーワードとしてデフォルトHTMLの meta keywords に反映されています。なので

1. 記事ごとのキーワードは諦める
2. 全ての記事のキーワードを書き換える

これをやらないといけません。それから HTML の meta keywords のちょっとした修正と。どんな活用方法があるのか、それが必要かどうか判断して下さい。

追加キーワードの活用アイデア

ボクは meta description のフリーテキストに使っています。meta keywords よりも meta description を採ったということです。SEO的には keywords も description もどちらも無くたっていいんじゃないか派なのですが、究極の選択だったら description を採る。

記事を書くとき「キーワード」フィールドに description にしたい紹介文も書く。さらに同じ画面の下部「更新通知」の「トラックバック概要」は Twitter や Facebook の OGP として使われますから、ここに同じ紹介文をコピペ。

160字までの思い通りの description が検索結果のスニペットに反映されるので(必ずではありませんが)、All in One SEO プラグインを導入した Wordpressで記事を書いている感覚ですね。

それからブログ全体のクオリティを高めるために品質の低い記事を noindex にするという使い方もありかと。

活用のポイントは記事ごとに個別の設定ができ、それが HTML にも反映できること。特に head に自由文が追記できるのはありがたい。反映先は HTML も含まれますが、変数が呼ばれるのは記事が開かれたとき(page_name eq 'article')だけです。

何かアイデアが思いついたらどんなことでも良いので絶対に教えてくださいませ。

追加キーワードの記述例

head の meta description に extra_keywords を代用するケース。(見やすさのために改行しています。改行は削除してください。)

<meta name="description" content="
<% if:extra_title %>
    <% if:page_name eq 'article' -%>
        <% if:extra_keywords %>
            <% extra_keywords | oneline | tag_strip %>
        <% else %>
        <% /if %>">
    <% /if %>

    <% if:page_name eq 'category' -%>
        <% blog.title %>のカテゴリ「<% extra_title %>」<% if:current_page > 1 %>(Page <% current_page %>)<% /if %>に含まれる記事一覧">
    <% /if %>

    <% if:page_name eq 'tag' -%>
        <% blog.title %>のタグ「<% extra_title %>」に含まれる記事一覧"><% /if %>
    <% else -%>
        <% blog.description | nl2br | tag_strip %><% if:current_page > 1 %> (Page <% current_page %>)
    <% /if %>">
<% /if %>


インデックスさせたくない記事のメタタグに noindex を追加するケース
該当記事ごとのキーワードフィールドに <meta name="Googlebot" content="noindex,follow"> を追記します。

その上でデザイン>HTML の head に下記を追加。(改行不要)

<% if:extra_keywords %>
    <% extra_keywords | oneline | tag_strip %>
<% /if %>

noindex でインデックスさせないようにはしますが follow でクロールは許可しています。対象とする検索エンジンは Google に限定するため Googlebot にしていますが、全面拒否希望のときは robots に置き換えます。


ちょっと話題が逸れますが、Seesaa変数はそのまま使う方法だけではなく、上記の例のように if文で真偽を判断させる2パターンあるようです。<% extra_keywords | oneline | tag_strip %>でエラーが返されるようであれば、同じ変数の条件文を付加することでエラーが回避できます。

次の追記リンク文言(追記つなぎ文言)も同様に if文でエラーを回避しながら使えます。

追記リンク文言:article.body_continue_text

追記文言はトップページやカテゴリページで記事に表示される「続きを読む」(など)の文字列そのもののことです。Seesaaブログでは「設定>詳細設定>記事設定」の「続きを読む文言」で初期値を設定できます。

Seesaa初期テンプレートの記事コンテンツで bodyfilter 変数に付随して既に使われている変数なので、このフィールドを活用するには記事コンテンツ HTML を少しカスタマイズして追記リンク文言を固定します。これで追記リンク文言変数に空ができてカスタムフィールドとして利用準備OK。

追記に関しては bodyfilter まわりのカスタマイズになり長くなるので割愛しますが、記事中にアドセンス広告を配置するとき、記事を2分割して追記文言の位置に割り込ませるやり方がある(このブログの記事中アドセンス配置パターン)。そのやり方で改めて取り上げます。

追記リンク文言の活用アイデア

フリーテキストですがカテゴリ(page_name eq 'category')やタグ(page_name eq 'tag')のように別ページに抽出表示できるわけではありません。反映できる範囲は記事コンテンツのみなのであくまでも記事内に追加しておきたい全記事共通の補助フィールドとしての活用に留まります。

このブログではカテゴリを親子の2階層に見せるために使っています。スーパー超シンプルテンプレートでは更新日専用に使おうかなと考えてますが記事に直接書けばいい話。カスタムフィールドとして更新日はちょっともったいないので活用方法を思案中。なにか面白い使い方があればご教示下さいませ。

article.body_continue_text 変数の基本的な記述は以下の通りです。

<% if:article.body_continue_text %>
   nbsp;<% article.body_continue_text -%>
<% /if %>

追記テキスト文言変数の記述例

思いっきり稚拙ですがこのブログの data-vocabulary.orgマークアップ2階層パンくずリストのやり方だけチョコっと。

まずカテゴリの親子関係を作り Excel で一覧にしておきます。記事作成時、カテゴリフィールドには普段通りに自分のカテゴリを選択。記事が子カテゴリの場合は「追記リンク文言」に親カテゴリのリンクを貼り付けます。この記事であれば「逆引き変数・関数レファレンス」が自分のカテゴリで親は「テンプレートカスタマイズ」です。

<a href="/category/15089628-1.html" itemprop="url" title="テンプレートカスタマイズ"><span itemprop="title">テンプレートカスタマイズ</span></a>

記事HTMLの冒頭にパンくずリストを追記しますが、以前表示されていた検索結果スニペットのパンくずリストが表示できなくなってしまいました。

data-vocabulary.org準拠パンくずリスト
原因が特定できてスニペットが元に戻ったら、data-vocabulary.org準拠Seesaaブログ2階層パンくずリストのコードも記事にしてみようかと。

スニペットの表示がおかしくなったのは2階層にカスタマイズし直してからなので、ノーマルの1階層 data-vocablary.org パンくずリストは問題ありません。» Seesaaブログにdata-vocabulary.orgのパンくずリストを設置する

追記テキスト文言変数で既知の問題が1つ。Google Feedburner のフィード上の続きを読むはこの追記テキスト文言変数を参照しているようです。»とある秘密ブログの更新うぇぶろぐ Feedburner

2階層パンくずリスト用のカテゴリを代入しているので、「続きを読む」に混ざってカテゴリが表示されていますね。ボクは全然気にしませんけど。

まとめ

既に運用していて記事数の多いブログだと、これらの5つの仮想カスタムフィールドには値が入っているので記事再編集のボリュームが半端ないかもしれません。SEO に絡むmeta description, meta keywords, noindex なども慎重に検討する必要がありますし。

5つの中ではコンテンツ不足によるアドセンスポリシー違反を回避するための「広告の表示」あたりはメリットがありそうです。有無のフラグを立てる作業は記事一覧から一括編集できますから再編集作業も一回の手間で済む。

アドセンス広告配信停止は誰かが Google に通報して目視されNGだったら速攻です。小さなスキも作らないようにしておかないと。

ところでこのSeesaaブログテンプレートでは記事中のアドセンス広告に関して今はトラックバック変数を使って記事ごとの表示・非表示を制御しています。でもこの変数は記事コンテンツにしか反映できません。ところが反映できないサイドバーのアドセンス広告を制御する方法を思いついてしまいました。

このアイディアを使えば変数とフラグを使って Seesaa ブログ全体のアドセンス広告表示・非表示をポリシーに抵触することなく完全制御できるようになります。近々、やり方は別の記事で改めて報告します。

Sponsored Link

この記事へのコメント

0件
コメントをどうぞ
お名前:[必須入力]

メールアドレス:

ホームページアドレス:

コメント:[必須入力]

Sponsored Link