URLコンテキスト詳細編

この記事は公開日より10年以上経過しているため、現在の内容と異なる可能性があります。

URLコンテキストのルール、使い方を詳しく紹介します。
URLコンテキスト基本編(ドキュメント)はこちらを参照してください
https://developer.a-blogcms.jp/document/urlcontext/

idで指定する

通常URL(例: http://sample.com/company/access.html )でのアクセスの場合、ブログ名、カテゴリー名、エントリーコード(ファイル名)をもとに、登録データの解析を行い、エントリー情報などを取得しています。
この他の書き方として、直接IDを指定してデータを取得する方法もあります。
http://sample.com/bid/1/cid/3/eid/16/
IDを指定した方法でも特定のエントリーを表示することができます。
また、カテゴリーIDまでを指定した場合は、一覧ページが表示されます。

年月日を指定する

URLコンテキストを使ってエントリーの年月日を指定することができます。
この場合、モジュールIDの設定にて、開始日時、終了日時のURLコンテキストを利用するチェックをする必要があります。



開始日時、終了日時の両方をチェックした場合

一覧ページで下記のURLでアクセスした場合の例を紹介します。
http://sample.com/news/2014/10/25
2014年10月25日の記事。
http://sample.com/news/2014/10
2014年10月の記事。
http://sample.com/news/2014
2014年の記事。

開始日時のみチェックした場合

http://sample.com/news/2014/10/25
2014年10月25日〜9999年12月31日までの記事(2014年10月25日以降)
http://sample.com/news/2014/10
2014年10月01日〜9999年12月31日までの記事(2014年10月以降)
http://sample.com/news/2014
2014年01月01日〜9999年12月31日までの記事(2014年以降)
※開始日時がURLコンテキストによって指定され、それ以降の記事といった条件でエントリーが抽出されます。

終了日時のみチェックした場合

http://sample.com/news/2014/10/25
1000年01月01日〜2014年10月25日までの記事(2014年10月25日以前)
http://sample.com/news/2014/10
1000年01月01日〜2014年10月01日までの記事(2014年10月以前)
http://sample.com/news/2014
1000年01月01日〜2014年01月01日までの記事(2014年以前)
※終了日時がURLコンテキストによって指定され、それ以前の記事といった条件でエントリーが抽出されます。

年月日については、yyyy/mm/dd、yyyy/mm、yyyyyの形式でURLコンテキストが記述されている場合に年月日として判定されます。

検索(キーワード検索)

URLコンテキストを使って検索を行います。
上記、年月の指定と同様にモジュールIDの設定で、keywordのURLコンテキストを優先にするチェックを入れる必要があります。
検索対象となるデータについては、検索機能で使用されるフルテキストのページを確認してください。

http://sample.com/news/keyword/地図/
検索キーワード「地図」でHITした記事の一覧ページが表示されます。

検索(カスタムフィールド検索)

URLコンテキストを使って検索を行います。キーワード検索と違い、検索対象はカスタムフィールドを指定しての検索になります。
モジュールIDの設定で、fieldのURLコンテキストを優先にするチェックを入れる必要があります。

http://sample.com/realestate/field/price/60000/
カスタムフィールド"price"の値を"60000"で登録している記事が一覧ページに表示されます。
http://sample.com/realestate/field/price/nem/
カスタムフィールド"price"の値を登録している(空ではない)記事が一覧ページに表示されます。
http://sample.com/realestate/field/price/lte/60000/
カスタムフィールド"price"の値を"60000"以下で登録している記事が一覧ページに表示されます。
更に詳しくは「カスタムフィールドをキーにしたエントリーの条件検索」をページを確認してください。

並び順(order)

一覧ページでの並び順をURLコンテキストで指定することができます。
モジュールIDの設定で、orderのURLコンテキストを優先にするチェックを入れる必要があります。

指定できる値は、モジュールIDの表示設定にあります並び順の項目と同じになります。

datetime-asc日時 ( 昇順 )datetime-desc日時 ( 降順 )
code-ascファイル名 ( 昇順 )code-descファイル名 ( 降順 )
id-ascID ( 昇順 )id-descID ( 降順 )
sort-asc表示順 ( 昇順 )sort-desc表示順 ( 降順 )
field-ascフィールド ( 昇順 )field-descフィールド ( 降順 )
intfield-asc数値フィールド ( 昇順 )intfield-desc数値フィールド ( 降順 )
randomランダム

http://sample.com/realestate/order/datetime-asc/
日時 ( 昇順 )で記事が一覧表示されます

カスタムフィールドで並び替えを行う”field-asc,field-desc,intfield-asc,intfield-desc”でのorder指定には注意が必要です。
例えば、下記のURLでは対象となるカスタムフィールドがありませんので、URLコンテキストで指定した並び替えは行われません。
http://sample.com/realestate/order/intfield-asc/

次のようにfieldでカスタムフィールドを指定します。
http://sample.com/realestate/field/price/nem/order/intfield-asc/
priceの値を数値として昇順に並び替えた一覧ページを表示します。

注意点:fieldの検索をしている必要があります。モジュールIDの設定でURLコンテキストのfieldのチェックしていない場合、URLコンテキストで指定した並び替えも行われません。
複数の項目をfield検索している場合、最初のfield(一番左側の)が並び替えに使用されます。

tpl で別テンプレートを適応する

tplを使って、指定ページの値(bid,cid,eidなど)を違うテンプレートにあてることができます。

http://sample.com/realestate/entry-21.html



http://sample.com/realestate/entry-21.html/tpl/include/main/realestate.html



通常に表示した場合(左の絵)と、tplを指定した場合(右の絵)となっています。
tplで指定しているファイルは、エントリーの本文部分を記載しているファイルです。
同じエントリーが表示されていますが、右の絵は<html>などの記述もCSSファイルへのパスも無いため崩れています。
1つの用途として、post_includeを使って任意の情報を取得して、ページのある部分にだけ動的にコンテンツを置く場合に使用します。

同じタグ付けがされている記事