記事詳細ページに、同じタグの関連記事を表示させたい

こんにちは
ブログ記事の詳細ページに、同一タグの関連記事を表示させたいのですが、
関数リファレンスを参考に

<?php $this->Blog->getRelatedPosts($post,10); ?>

を記述してみたのですが、表示されません。

何か他に記述すべきこtがあるのでしょうか?
よろしくお願いいたします。

この関数ですと同一タグの記事リスト取得までしかおこなえません。

・foreach等でgetRelatedPostsで取得した配列を回し、ループ内で出力

上記をおこなえば、関連記事が出力できるかと思います。

1 Like

早速のご回答ありがとうございます。

ループ内での取得ということは以下のような記述であってますでしょうか?

<?php $this->Blog->getRelatedPosts($post,10); ?> <?php if ($posts): ?> <?php foreach ($posts as $key => $post): ?>
	<?php
	$class = array('clearfix', 'post-' . ($key + 1));
	if ($this->BcArray->first($posts, $key)) {
		$class[] = 'first';
	} elseif ($this->BcArray->last($posts, $key)) {
		$class[] = 'last';
	}
	?>
  • <?php $this->Blog->eyeCatch($post, array('link' => false,'class' => 'recommend-img')) ?>

    <?php $this->Blog->postTitle($post, false); ?>

    <?php $this->Blog->postContent($post, false, false, 80); ?>

    <?php $this->Blog->postDate($post, 'm.d') ?>

  • <?php endforeach; ?> <?php else: ?>

    記事がありません

    <?php endif ?>

    よろしくお願いいたします

    私はこのように書きました。

    <?php 
    // 関連記事リストを取得
    $relatedPosts = $this->Blog->getRelatedPosts($post,10); ?>
    
    <?php if ($relatedPosts): ?>
    	<?php foreach ($relatedPosts as $key => $post): ?>
    		<?php $this->Blog->eyeCatch($post, array('link' => false,'class' => 'recommend-img')) ?>
    		<?php $this->Blog->postTitle($post, false); ?>
    		<?php $this->Blog->postContent($post, false, false, 80); ?>
    		<?php $this->Blog->postDate($post, 'm.d') ?>
    	<?php endforeach; ?>
    <?php endif; ?>
    
    1 Like

    ありがとうございます!
    教えていただいた通りに書いてみたら、無事表示できました!
    ありがとうございます!

    ちなみに、関数リファレンスにあった $this->Blog->getRelatedPostsという関数は
    今回のように何らかの手を加えないと、そのままでは使えない感じなんですか?
    リファレンスにあった他の関数とかも同じでしょうか?

    1 Like

    getRelatedPosts については、データリストを取得するだけなので、今回のようにforeachした上で手を加える必要があります。
    その他の関数については、関数リファレンス一覧に「出力」とあればその関数のみで表示までできるかと思いますが、「取得」であれば表示のための操作が必要になるかと思います。
    関数リファレンスに「用例」が記載されているものも多いので、是非御覧ください!

    1 Like

    ありがとうございます!
    返信遅れてすみません!

    リファレンスの用例などを参考に、もっと勉強してみたいと思います!
    ありがとうございました!

    2 Likes