Sep 13
う~ん、いつもの事ながらエントリのタイトルには苦労します
長くなりすぎないように、それでいてちゃんと意味が通って誤解を受けないようにするのは難しいもんです
コピーライターにはなれないなぁ…
で、本題
今まで書くのをすっかり忘れてたんですが、NP_TrackBack の変数「<%TrackBack(url)%>」を変更するカスタマイズです
せっかく URL をカスタマイズしても、トラックバックの URL は
ほとんどの方が標準のトラックバック URL で運用されていると思いますが、これを
そのうち NP_CustomURL に、トラックバック URL 生成のコードを追加しようと思いますが、今回は NP_TrackBack v2.0.3jp4 の URL 生成部分を書き換える方法を紹介します
ちょっと長くなるんで続きに...
06/09/16 18:55 オプションで「カスタマイズしたURLを使わない」にしている時と、NP_CustomURL がインストールされていない時に、標準のトラックバックURLが返されるようにちょこっと書き換えました
まずは NP_TrackBack v2.0.3jp4 をエディタで開き、631行目からの
ここを。「/trackback/item_123.html」方式の場合は
これで完了
「<%TrackBack(url)%>」と書いたところの表記が変わってるはずです
ちなみにここで改造した URL で受け取ったトラックバックは、FancyURL で必要だった「trackback」ファイルを取り込んだNP_CustomURL で URL を解析してからトラックバックIDを NP_TrackBack に渡してます
解析機能は初期バージョンから付けてたのに、改造方法どこにも書いてなかった orz
ゴメンナサイ
長くなりすぎないように、それでいてちゃんと意味が通って誤解を受けないようにするのは難しいもんです
コピーライターにはなれないなぁ…
で、本題
今まで書くのをすっかり忘れてたんですが、NP_TrackBack の変数「<%TrackBack(url)%>」を変更するカスタマイズです
せっかく URL をカスタマイズしても、トラックバックの URL は
http //example.jp/?action=plugin&name=TrackBack&tb_id=123のまま、もしくは NP_cles() さんの所に書いてあるやり方だと、
http //example.jp/item/123.trackbackとか
http //example.jp/item_123.html.trackbackとか(下の URL はちょっとわけ解らなくなってますが)になってると思います
ほとんどの方が標準のトラックバック URL で運用されていると思いますが、これを
http //example.jp/trackback/item_123.htmlまたは
http //example.jp/item_123.trackbackに変更する方法です
そのうち NP_CustomURL に、トラックバック URL 生成のコードを追加しようと思いますが、今回は NP_TrackBack v2.0.3jp4 の URL 生成部分を書き換える方法を紹介します
ちょっと長くなるんで続きに...
06/09/16 18:55 オプションで「カスタマイズしたURLを使わない」にしている時と、NP_CustomURL がインストールされていない時に、標準のトラックバックURLが返されるようにちょこっと書き換えました
まずは NP_TrackBack v2.0.3jp4 をエディタで開き、631行目からの
function getTrackBackUrl($itemid) {
global $CONF, $manager;
return $CONF['ActionURL'] . '?action=plugin&name=TrackBack&tb_id='.$itemid;
}
のブロックを探しますここを。「/trackback/item_123.html」方式の場合は
function getTrackBackUrl($itemid) {
global $CONF, $manager;
// return $CONF['ActionURL'] . '?action=plugin&name=TrackBack&tb_id='.$itemid;
// add for NP_CustomURL
if ($manager->pluginInstalled('NP_CustomURL')) {
$plugin =& $manager->getPlugin('NP_CustomURL');
if ($plugin->getBlogOption(getBlogIDFromItemID($itemid), 'use_customurl') == 'yes') {
$que = 'SELECT obj_name as result FROM %s WHERE obj_param = "item" AND obj_id = %d';
$itempath = quickQuery(sprintf($que, sql_table('plug_customurl'), $itemid));
$uri = $CONF['BlogURL'] . '/trackback/' . $itempath;
} else {
$uri = $CONF['ActionURL'] . '?action=plugin&name=TrackBack&tb_id='.$itemid;
}
} else {
$uri = $CONF['ActionURL'] . '?action=plugin&name=TrackBack&tb_id='.$itemid;
}
if(strstr ($uri, '//')){ $link = preg_replace("/([^:])\/\//", "$1/", $link);}
return $uri;
// for NP_CustomURL end
}
に、「/item_123.trackback」にする場合は function getTrackBackUrl($itemid) {
global $CONF, $manager;
// return $CONF['ActionURL'] . '?action=plugin&name=TrackBack&tb_id='.$itemid;
// add for NP_CustomURL
if ($manager->pluginInstalled('NP_CustomURL')) {
$plugin =& $manager->getPlugin('NP_CustomURL');
if ($plugin->getBlogOption(getBlogIDFromItemID($itemid), 'use_customurl') == 'yes') {
$que = 'SELECT obj_name as result FROM %s WHERE obj_param = "item" AND obj_id = %d';
$itempath = quickQuery(sprintf($que, sql_table('plug_customurl'), $itemid));
$itempath = substr($itempath, 0, -5);
$uri = $CONF['BlogURL'] . $itempath . '.trackback';
} else {
$uri = $CONF['ActionURL'] . '?action=plugin&name=TrackBack&tb_id='.$itemid;
}
} else {
$uri = $CONF['ActionURL'] . '?action=plugin&name=TrackBack&tb_id='.$itemid;
}
if(strstr ($uri, '//')){ $link = preg_replace("/([^:])\/\//", "$1/", $link);}
return $uri;
// for NP_CustomURL end
}
に書き換えますこれで完了
「<%TrackBack(url)%>」と書いたところの表記が変わってるはずです
ちなみにここで改造した URL で受け取ったトラックバックは、FancyURL で必要だった「trackback」ファイルを取り込んだNP_CustomURL で URL を解析してからトラックバックIDを NP_TrackBack に渡してます
解析機能は初期バージョンから付けてたのに、改造方法どこにも書いてなかった orz
ゴメンナサイ
2 Responses to “ トラックバックURLをNP_CustomURLの表示にするカスタマイズ ”
Leave a Reply
OpenID を使ってログインすることができます。
Trackbackの短縮化失敗? @ 備忘録とかもろもろ
突然思い出したように記事更新するのはやめましょう(笑
で、MagicalURLでTrackBackURLの短縮化(TrackBackURLのMagical化?)にて、TrackbackのMagicalURL風短縮を行ったんですが、これが一部うまくいっていな...
2006/09/13 17:05
この記事のトラックバックURL
http://shizuki.kinezumi.net/item_301.trackback(右クリックで'ショートカットの保存')
トラックバックするにはこの記事へのリンクhttp://shizuki.kinezumi.net/item_301.htmlが必要です
ローカルトラックバック
2006-09-13

September 13th, 2006 at 17:21:46 トラックバックをしようと思ったんですが、管理履歴に以下のエラーが出ます。
TrackBack Error:An error occurred: fatal error. (http://shizuki.kinezumi.net...)
NP_TrackBack v2.0.3jp3です。(jp4は帰ってからアップデートして試してみます)
September 13th, 2006 at 17:22:40 って、今見たらトラックバックされてますね…。すみません(><