URLコンテキスト詳細編
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-asc | ID ( 昇順 ) | id-desc | ID ( 降順 ) |
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/tpl/include/main/realestate.html
通常に表示した場合(左の絵)と、tplを指定した場合(右の絵)となっています。
tplで指定しているファイルは、エントリーの本文部分を記載しているファイルです。
同じエントリーが表示されていますが、右の絵は<html>などの記述もCSSファイルへのパスも無いため崩れています。
1つの用途として、post_includeを使って任意の情報を取得して、ページのある部分にだけ動的にコンテンツを置く場合に使用します。