NP_Header|個別アイテムページのDescriptionを改造

NP_Header|個別アイテムページのDescriptionを改造

Author : pushman|Nucleus|2005-11-03 Thu 11:39

まず最初に誤解なきよう。「NP_Header」を使用するときちんと「head」内に「meta」タグの「Description」を表示してくれます。ただ

<meta name="Description" content="What's so bad about feeling good? といった感じで運営しているBlogです。" />

このように、個別ページでもサイトの説明文を表示することになります。

「それがどうした? 誰もそんなとこ読みゃしない」と思っていたのですが、最近やっと Google にインデックスされて、弊害に気付きました。その対策メモです。

「blog.heartfield-web.com」をGoogle 検索すると、いくつか記事がインデックスされています。この記事を書いてる時点では、8つの記事が登録されていますが…ちょっとおかしいです。…7つの記事に、まったく同じ文面が表示されています。これではせっかく検索にひっかかっても、内容が無いよう*1に見えてしまいます。で、よくよく考えたら「Description」が表示されるんですよね、確か。

当サイトは、head の主要部分を「NP_Header」を利用させていただいて出力していまして「Description」も例外ではありません。ということで、単純に個別アイテムページのスキンに「<meta name="Description…」とする訳にもいきません。まずは「NP_Header」に手を入れます。実際に出力している個所のソースをながめるとこんな個所があります。

if (!empty($description)) {
echo '<meta name="Description" content="' . $description . '" />' . "\n";
}

これはおそらく「変数 $description が空っぽではないなら、以下のように出力しなさい」という意味の if 文ではないかと推察します。ということは「$description」が空なら、NP_Header は「<meta name="Description…」を出力しないので、個別アイテムページの時に「$description」を空にするようにしました。NP_Header の130行目辺りを以下のように修正します。

case 'item':

$description = '';
$keywords = $this->getKeywords($itemid);

説明したまんまですね。これで個別アイテムページを表示する時は「Description」が表示されなくなりました。あとは、スキンにこんな感じで記述します。

<%if(skintype,item)%><meta name="Description" content="<%item(description)%>" /><%endif%>

「<%item(description)%>」のテンプレートは、アイテムの本体に「<%syndicate_description%>」とするだけです。

これで無事、よりわかりやすい Description が表示される、はずです。よかったよかった。ほんとは「NP_Header」を改造して、直接「<%syndicate_description%>」を表示させたかったんですけどね…ちんぷんかんぷんです。

【追記】
作者の dj k!ng さんがコメントしてくれているとおり、最新版ではこの改良をするまでもなく、個別アイテムページで「Description」が表示されるようになりました。ありがとうございます。
NP_Header v1.2 | The Skooler.org Weblog


  • *1:だ、駄洒落ではないですよ、念のため(笑)。

Tag(s): NP_Header

[Nucleus] Next & Previous

Comments

Posted by dj k!ng2005-11-03 Thu 15:55

初めまして, NP_Header の作者です.
確かに Description にブログの説明文を表示していたのでは, Google を始め, 幾つかの検索エンジンで問題が生じますね :-(
ちょっとやっつけ仕事気味ですが, 手を入れて公開 (v1.2) してみました. 個別アイテム・ページで <%syndicate_description%> 相当の説明文を表示するようにしています.

Posted by pushman|2005-11-03 Thu 23:09

dj k!ng さん
はじめまして。というより、いつもお世話になってます。

早速導入させていただきました。もうなんというか、完璧です。本当にありがとうございます。

Posted by dj k!ng2005-11-16 Wed 05:58

すいません, v1.2 でエンバグしちゃってました ;'(

コードを整理していて気付いたのですが, 正しく更新時刻 (Last-Modified) を記録できていませんでした. 特に実害は無さそうですが, ブラウザのキャッシュをクリアしないと新しい記事が表示されない場合があると思います.

お手数おかけ致しますが, 修正した v1.21 をリリースしたのでファイルを上書きしてください. 申し訳ないです.

Posted by pushman|2005-11-16 Wed 10:54

dj k!ng さん
こんにちは。

ご連絡ありがとうございます。問題なく稼働してます。

カテゴリーページの表示改変に手間取りました。
NP_Header::doSkinVar($skinType)(書き方あってるのかな(笑))に「$catid」の追加が必要なんですね。記事修正します。

dj k!ng さんのおかげで、多少は理解が深まったと思います。しかしコメントスパムが来ないので、今だ動作確認できずです。そっちの方がいいんですけどね(笑)。

Comment Form (policy)

(メールアドレスは非公開です)

Others
Newest 5 Items

NP_ImageExtractor|エラー修正

NP_ImageExtractor|画像を抽出するプラグイン

NP_OtherBlogSetting|別ブログの情報を表示

NP_TotalOfComment|コメント数を表示

NP_znItemFieldEX|ランダム表示

Nucleus CMS: Pure Publishing