WordPressユーザーのbaserCMS覚え書き


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() 側で表示処理が行われるからです。