baserCMSで画像にリンクをつけるコード
baserCMSのテーマづくりを始めて、直感的にちょっと戸惑ったのが画像やリンクの生成方法でした。
たとえば、WordPressで画像を表示する場合こんな感じで書きますよね。
<img src="<?php echo get_stylesheet_directory_uri(); ?>/images/foo.jpg" alt="bar" />
リンクだとこんな感じでしょうか。
<a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>">~</a>
動的に変化する部分にテンプレートタグを埋める、というコーディングになります。ところがbaserCMSだと
<?php $bcBaser->img() ?>
とか
<?php $bcBaser->link() ?>
という関数で img タグや a タグもろとも出力するんですよね。
そうなると「?」となるのが、画像にリンクをつける、例えばリンクボタンなんかをつける場合のコーディング。
リンクをつけるので $bcBaser->link() でいいんですが、マニュアルを見ると第1引数は「アンカータグのラベル」ということになっている。いや、リンクさせたいのはラベルじゃなくて画像なんですけど……ということで、たとえばこのようなコードになります。
<?php $bcBaser->link( $bcBaser->getImg( $path ), $url ) ?>
「アンカータグのラベル」と書いてあるのでちょっとわかりづらいですが、要は a タグで挟む中身(画像の場合は、画像ファイルへのパスを含んだ img タグ)を第1引数で指定すればよいというわけです。
ちなみに画像を表示させる場合、通常は $bcBaser->img() を使いますが、これだとうまくいきません。画像ファイルへのパスを含んだ img タグは、$bcBaser->link() の第1引数として渡され、$bcBaser->link() 側で表示処理が行われるからです。