NP_TrackBack|Trackback Auto-Discovery 修正

NP_TrackBack|Trackback Auto-Discovery 修正

Author : pushman|Nucleus|2006-02-17 Fri 12:03

当サイトではトラックバックに、hsur さんが配付されている、「NP_TrackBack v2.01jp2 c2」を利用させていただいています。リンク無しトラックバックを一時保留にしてくれたり、記事中のリンク先を調べて自動でトラックバック URI を抽出してくれたりと、便利機能満載です。

この「自動トラックバック URI 抽出機能」ですが、相手先に「Trackback Auto-Discovery」という RDF が記述されていないと動きません。自分のサイトにその RDF を記述する場合は、任意の場所*1に「<%TrackBack(code)%>」と書くだけです。が、まれに The W3C Markup Validation Service で検証すると、エラーが発生します。調べてみると「dc:description」の最後で文字化けが発生していました。

というわけで、以下その修正メモ。

「insertCode」関数内の以下の部分で「dc:description」の内容を生成しているようです。

$desc = $this->_cut_string($desc, 200);

「_cut_string」関数を見てみましたがちんぷんかんぷんなので、以下のように修正しました。

// $desc = $this->_cut_string($desc, 200);
$desc = preg_replace('/[\r\n\t\040]+/', ' ', $desc);
$desc = shorten($desc, 250, '...');
$date = $item['itime'];

まず改行を半角スペースに置換して、250 文字にまるめています。って自分で考えたように書いてますが、dj k!ng さんの「NP_Header」の処理を参考に、というかそのまんま流用させてもらいました。お世話になりっぱなしですみません。

順番が前後しますが「dc:date」の日付が常にそのページが開かれた日時であるのも気持ち悪かったので、記事投稿時間を表示するために「$date = $item['itime'];」も追加しています。表示するためには RDF の出力部分の「dc:date」を以下のように修正します。

dc:date="<?php echo $date; ?>" />

なんて修正をした後で気付いたのですが、「トラックバックの技術仕様」によると「dc:description」「dc:date」ともに必須項目ではないんですよね。考えてみると、トラックバック先の URI を取得できればいいわけで、確かに必要ない気もしてきますね。まあで多くの Blog と形式を統一していた方が後々楽できるかもしれません。


ところで hsur さんの記事から Trackbak URI が抽出されませんね。ちゃんとソースに RDF はあるんですがなんでだろう?

  • *1これはいろいろ調べてみたのですが、どこが適切なのかわかりませんでした。<head>〜</head>でも<body>〜</body>でも動作に違いはありません。結局 (x)html のコメントとして埋め込んでいるのでそうなるんだと思います。

Tag(s): NP_TrackBack

[Nucleus] Next & Previous

Comments

Posted by hsur2006-02-18 Sat 17:23

ところで hsur さんの記事から Trackbak URI が抽出されま
せんね。ちゃんとソースに RDF はあるんですがなんでだろう?

ツッコミありがとうございます。

前々から自分のページのAuto-Discoveryが効かないのはわかっていたのですが、これを機にページを見直してみたところ、RDFが2つあったのが悪かったようです。無事解決できました。

Posted by pushman|2006-02-18 Sat 19:54

hsur さん
素晴らしいプラグインの開発おつかれさまです。いつも大変お世話になってます。あらためまして、ありがとうございます。

RDFが2つあったのが悪かったようです。無事解決できました。

お役に立てて嬉しいです。今後も一方的にお世話になりそうですが、よろしくお願いします。

Comment Form (policy)

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

Others
Newest 5 Items

NP_znItemFieldEXとNP_ifの連携

NP_znItemFieldEX|PHP 5で検索機能を有効にする

NP_GoogleMaps|最大ズームレベルを変更

NP_ImageExtractor|エラー修正

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

Web Service

Google Mapsで緯度と経度を測定

Nucleus CMS: Pure Publishing