WordPressユーザーのbaserCMS覚え書き


ベースを考慮したURLを取得する

WordPress

該当する関数(テンプレートタグ)はありません。よく似た挙動をする関数に home_url() や site_url() などがあります。

baserCMS(2系)

$bcBaser->getUrl( [$url] , [$full] , [$sessionId] )

[getUrl] 相対パスから実際のパスを取得する|baserCMS 2系関数リファレンス

baserCMS(3系)

$this->BcBaser->getUrl( [$url] , [$full] , [$sessionId] )

[getUrl] 相対パスから実際のパスを取得する|baserCMS 3系関数リファレンス

メモ

テンプレートファイル内で、特定ページのURLを文字列として取得したいときに使います(出力まで行いたいときは url() 関数を使います)。

デフォルトではドキュメントルート(定数 WWW_ROOT に定義された値)からのパスを取得しますが、第2引数を true に設定することで絶対URLを取得できます。
(公式リファレンスの「ドキュメントルートについて」にもあるように、baserCMSでは通常 /app/webroot/ をドキュメントルートとするようになっているので、一般的な用法でのドキュメントルートとは異なる点に留意してください)

WordPressの home_url() や site_url() も同様の働きをする関数(テンプレートタグ)ですが、得られる文字列が絶対URLとなる点で getUrl() 関数とは違いがあります。

[関数リファレンス(2系)の補足]
本記事執筆時点での公式リファレンスには第3引数([$sessionId])の記述がありませんが、/baser/views/helpers/bc_baser.php に下記のようなコードがあるので、url() 関数と同じく第3引数の指定が可能です。

/**
 * 相対パスから実際のパスを取得する
 * @param string $url
 * @param bool $full
 * @param bool $sessionId
 * @return string
 * @manual
 */
    function getUrl($url,$full = false, $sessionId = true) {

return parent::url($url,$full, $sessionId);

}