Nucleus の個別アイテムページの URI

Nucleus の個別アイテムページの URI

Author : pushman|Nucleus|2005-11-22 Tue 08:14

少し前から、当サイトの個別アイテムページの URI を「NP_Permalink」で生成したものに置き換えました。以前書いた不満を、やっと解消できたわけです。これは全て dj k!ng さんのおかげです。思い描いていた URI でサイトを構成する事ができました。ほんとにありがとうございます。

僕が大変手間取ったのは、.htaccess への記述です。これまた解決してくれたのは dj k!ng さんなのですが、他にもリダイレクトの設定とかあったので、大急ぎメモ。

まず、NP_Permalink の現行バージョンは、再編集の際にキーワードが消えてしまう事があったので、これを回避します。

【追記】
最新版(1.3)では修正されていますので、以下の修正は不要です。

一所懸命ソースを読んで、意味をつかんだ上で改造したかったのですが、んーちょっと僕には難しすぎました。なので、とりあえずこの現象は回避したのですが、もしかすると別の不具合発生しているのかも…しれません。まあかなり慎重に調べたので大丈夫と思いますけど。NP_Permalink の197行目辺りを修正します。

if (!empty($name) && ($this->getItemID($name) === FALSE))

ここはおそらく「変数 $name が空っぽじゃなくて、かつ、($this->getItemID($name) が型も値も FALSE だったら」という意味…では…ないかと。で、そうだった場合にデーターベースにキーワードが登録されると。これが成り立たない場合は、データーベースから削除しているようです。違うかな。ちょっとわかりません。で、まあここはよくわからないので置いといて「function getItemID」を見ましたが、間違っていないような気がするんです。僕がいっても説得力ありませんが。なんで再編集の時にキーワードが消えるのか…しかし消えてしまうのは事実です。新規投稿のときは問題ない。再編集の時もキーワードを変更すれば登録される。もやもやっとしてきましたので、とりあえずこうしてみました。

if (!empty($name))

つまり、とにかくキーワードが入力されているなら登録しちゃえ、という感じですね。

まあとにかく動いております。

次はテンプレートですね。あれこれ説明するより見たほうが早いので、こうです。

<a href="<%blogurl%><%category%>/<%Permalink(name)%>.html" title="<%title%>">Read more...</a>

いろーんなテンプレートの全ての個別アイテムページへのリンクをこうのように変更します。「<%Permalink(name)%>」はキーワードのみを取り出すという事です。ルート直下に展開しようと思ったのですが、カテゴリー別に分けたほうが URI だけでもなんとなく内容がわかるのでは、と思い上記のようにしました。

まだあります。次は「.htaccess」です。これも見てください。

RewriteRule ^nucleus/([-a-zA-Z0-9_]+)\.html$ index.php?itemid=$1

「nucleus」の部分はカテゴリーごとに修正してください。正規表現「([-a-zA-Z0-9_]+)」は「ハイフン、アンダーバーを含むアルファベットの大文字小文字と数字」という意味です。また、すでに静的サイトに見せかけている方は

RewriteRule ^item_([0-9]+).html+ index.php?catid=$1

を削除してください。もう不要ですし、リダイレクトさせる時に変になってしまいます。

最後。すでに「http://www.test.com.item_1.html」といった URI でサイト公開している方 ─僕もそうだったんですが─ は他サイトからのリンクがあるので、リダイレクトさせる必要があります。当サイトの場合はこんな感じです。

Redirect permanent /item_1.html http://blog.heartfield-web.com/column/heartfield_again.html

もしかすると華麗な正規表現で一発変換も出来るかもしれませんが、僕にはとてもできないので全82アイテムをこつこつ登録しました。「permanent」は「もう完全に新しいところに移動したので、古いのは無効です」てな感じでいいでしょうかね。当たり前ですが、キーワードをころころ変えてはいけませんよ。

以上で Nucleus で個別アイテムページの URI 変更手順はおしまいです。忘れないうちに書いたメモですので、意味不明な点や、表現がまどろっこしい点はご容赦ください。

…ぐわぁ…トラックバックのこと忘れてた…現在調査中です。…もしくはトラックバックはしない方向で…

ってわけにもいかないので、禁断のコアファイル改造に手を出しました。詳細はこちら。
NP_Permalink導入時のトラックバック
これを読んでもらえばわかりますが、カテゴリーごとに分けないほうが、修正が楽になります。僕は今ならカテゴリー分けしませんね…

ほかの注意事項とまとめてみました。
NP_Permalink|導入まとめ

Tag(s): NP_Permalink / Nucleus Tips

[Nucleus] Next & Previous

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