TOPページでブログ記事を出力するとき、ブログタイトル名を取得した上で記事を出力したいと思った。(ブログタイトル名は、管理画面の「『ブログタイトル名』>設定」のタイトルで設定した名前)
公式サイトの関数リファレンスを確認するとgetBlogsという関数があったため、blogPostsと一緒に活用することに。
対応方法
テンプレート側のファイル「Layouts/default.php」には、TOPにだけ表示するよう$this->BcBaser->isHome()から分岐する。
今回はサンプルとしてブログ投稿「news」を3件取得する。(ブログ投稿「news」は、管理画面の「『ブログタイトル名』>設定」のURLで設定した名前)
<?php if($this->BcBaser->isHome()): ?>
<div class="blogs">
<div class="blogs-inner">
<?php
$blogs = $this->BcBaser->getBlogs('news');
if($blogs):
?>
<article class="con-m">
<div class="con-inner">
<h2 class="blogs-title">
<?php echo h($blogs['Content']['title']) ?>
</h2>
<?php
$args = array(
'direction' => 'DESC'
);
$this->BcBaser->blogPosts($blogs['Content']['name'],3);
?>
</div>
</article>
<?php endif ?>
</div>
</div>
<?php endif ?>
その他メモ
blogPostsの挙動はBlog/default/posts.phpの有無で変わる。Blog/default/posts.phpがなければデフォルトのul表示になる。
Blog/default/posts.phpで設定した表示形式を使うのであれば、optionsにtemplateを指定しなくても問題ない。
ブログタイトル名→$blogs[‘Content’][‘title’]
ブログスラッグ→$blogs[‘Content’][‘name’]
ディスクリプション→$blogs[‘BlogContent’][‘description’]