BcBaser->blogPostsで出力しているブログの表示が更新順にならない。

いつもお世話になっております。

4.4.0にしてから、ブログを更新したところ、
BcBaser->blogPostsで表示しているブログの順番が
更新日順になりません。

2020.10.04の記事が、2020.09.19と2020.09.17の間に表示されます。
10.04の記事は、過去に投稿した記事を更新したものです。

キャッシュのクリアも行ってみましたが変化なしです。

何か方法ありますでしょうか?

【環境情報】
・baserCMSのバージョン:4.4.0
・レンタルサーバー名:ロリポップ
・使用テーマ:bc_sample
・PHPスキル(自己評価): 全くわからない

1 Likes

後ほど調べてみます。状況を再現できない場合はさらに具体的に聞かせて
いただきたいですが、その時はよろしくお願いします。

1 Likes

@yamamoto よろしくお願いします。

追加情報ですが、確認したところ、
2020.09.19の記事も過去に投稿した古い記事を更新したもので、
2020.09.17は、この日に初めて書いた記事(投稿日=更新日)となっています。

プロフィールに掲載されているサイトを拝見しました。
トップページに表示されている「新着〇〇情報」「最近の〇〇探訪」、それぞれのポスト情報に表示されている日付情報がいずれも間違いなく「更新日」であるとして、「新着〇〇情報」の方は、正しく更新日降順に並んでいる様ですが、「最近の〇〇探訪」がたしかにご指摘の様に表示されていますね。

すこし、本題と外れますが、ポスト情報ではなく、実際の両ブログのコンテンツ一覧を拝見すると、一覧の記事の並び順もポスト情報と同様の並び順になっています。
そもそも、コンテンツ一覧の並び順は、どの様にして実現されていますか?以下の過去記事でryuringさんから提案いただいたカスタムプラグインの手法でしょうか?

もしそうであれば、そのあたりの記述がそもそも間違っているということも考えられるのではないかと想像します。
問題点を探る意味で、その辺りから整理していただき、情報提供いただければ、何かアドバイスさせていただけるかもしれません。

話は少し逸れましたが、まず、以下、確認されてはいかがでしょうか?

上記いずれのポスト情報も、レイアウトファイルに記載されているPHPコードは、以下の様に記述されているはずだと思いますが、いかがでしょうか?

<?php $this->BcBaser->blogPosts('news', 5, array('sort'=>'modified')); ?> <?php $this->BcBaser->blogPosts('damtripblog', 5, array('sort'=>'modified')); ?>
1 Likes

@GUSSAN さん、こんばんは。

特に何も触っていません。

<?php $this->BcBaser->blogPosts('damtripblog', 5) ?>

だけで、過去からずっと運用してきて、特に並び方が気になったことがなかったのですが。
3番目にソートの命令が入ってないのがだめなのでしょうか。

dbkaiyuさん
そうなんですね?ご指摘の <?php $this->BcBaser->blogPosts('damtripblog', 5) ?> では、特に何もしなければ、投稿日基準で並んでしまうんですけどね?不思議です。。。

では、一度、両方のブログについて、先ほどご提案した以下の様に設定してみていただけませんか?

<?php $this->BcBaser->blogPosts('news', 5, array('sort'=>'modified')); ?>
<?php $this->BcBaser->blogPosts('damtripblog', 5, array('sort'=>'modified')); ?>
1 Likes

コメントありがとうございます。

ソートを追加してみましたけど、変化なしです。

気になるのは、この命令を使っていない(と思う)
上にあるメニュー部分から該当のブログ開いても、
順番が崩れてるんですよね。

では、固定ページとして書いておられるんですかね?
トップページ用の固定ページがありますか?
あれば、そのページの編集画面で、オプションのコード欄などに、同様の記述があるのではないかと?

1 Likes

トップページは固定ページで作って、
blogPostsでブログの記事を表示。
ちなみに、オプション欄は空欄です。

ブログのクリックで開く方は、
ブログを追加してるだけで、
何も触ってません。

前バージョンまでは並び方崩れなかったので、
何かが変わってると思いますけど。うーん。

なるほど、本文欄にblogPostsのPHPコードを書いてらっしゃるってことですね?
だとしたら、二つ並んで表示されている「新着〇〇情報」のブログと「最近の〇〇探訪」のブログ、それぞれのblogPostsのコードが、書かれていると思うのですが?

1 Likes

何度もコメントありがとうございます。

引用、二つ並んで表示されている「新着〇〇情報」のブログと「最近の〇〇探訪」のブログ、それぞれのblogPostsのコードが、書かれていると思うのですが?

本文に書いてある、その部分を最初に教示頂いたもので、3項目目にソートをいれてみたのですが、変化がなかったということです。

いえいえ、お気遣いなく。
キャッシュをクリアされても、変わりませんか?

「3項目目にソートをいれてみた」というのはどういう意味でしょう?
もし差し支えなければ、その部分のコードを貼っていただくことできますか?

1 Likes

キャシュクリアは実施済みです。

引用 <?php $this->BcBaser->blogPosts('damtripblog', 5, array('sort'=>'modified')); ?>

をそのまま本文にいれました。

ここが並び変わっても、ブログのページの方は並び変わらない気がしますが。

ブログのページとおっしゃってるのは、ブログ一覧ですね?
ブログ一覧の並び順は、blogPostsでは、変わりません。

もともと、表題の質問は、TOPページの並び順をおっしゃてたのではないのですね!ブログ一覧の並び順をおっしゃってるんですね?

1 Likes

最初は、トップページのほうが並ばないことに気がついて、
ここに投稿したのですが、
ブログのページの方も並んでいないことに気がついたのです。

言葉で伝えるのが難しいですね。申し訳ございません。

ようやく問題点がわかりました!
まず、今回のアップデートでブログ一覧の並び順が変わったということは、多分ですが無いと思います。
おそらく、偶然、dbkaiyuさんのブログ更新のタイミングなどが、問題を表出させなかっただけだと思います。

ちなみに、特に何もblogPostsコードのオプションで制御しなければ、ブログ一覧の並び順に倣って、トップページのblogPostsの並び順は出力されます。

なので、dbkaiyuさんが問題視されているのは、blogPostsではなく、ブログ一覧の並び順ということになります。
で、ブログ一覧の並び順ですが、これは、通常、ブログの投稿日を基準として、降順か昇順かをブログ単位に設定画面で制御しています。
ですので、そもそも、特にプラグイン等で改変を加えない限り、更新日基準で並んでいるはずがないのです。

1 Likes

つまり、ブログの並び順で出力されるので、
blogPostsの問題ではなく、
ブログの問題ということですね。

ブログのインデックスページが、
更新日順に並ばなくなったという問題があるということですね。

@GUSSAN さん、説明するための単語がよくわからず申し訳ございませんでした。

いえいえ、大丈夫です。気になさらないでください^^
もう一度申し上げますが、そもそも、更新日順に並んでいたということはないと思います。勘違いだと思いますよ?
先ほども申し上げましたが、ブログ一覧は、あくまで投稿日(更新日ではありません)を基準として、降順か昇順を各ブログの設定欄で制御しています。
ScreenShot 2020-10-08

ちなみに、更新日順にブログ一覧を並び替えたいというのであれば、私の最初のコメントで引用した「ブログ一覧表示を更新日基準でソートしたい」というトピック内でryuringさんが提案してくださったカスタムプラグインを実装するなどすれば、可能です。

1 Likes

ちなみに、もしかして、更新日とおっしゃってる日付は、記事編集画面の「投稿日」欄の日付のことだったりしますか?

1 Likes

いま、確認しました。新しい記事順になってました。

整理します。これまで行っていた作業は、

  1. 記事を投稿する。
  2. 後日、記事を再び編集して、投稿日時を修正し、再投稿する。

ということをしていました。

私が更新日順といっていたのは、上記のように作業した日時に投稿日時を修正していたからです。

新しい記事(投稿日)順で並ぶのであれば、投稿日を修正しているので、
その日付順に並ぶはずですよね?
これまでも、思い通りに並んでましたので、今回はやはりなにかおかしいと思った次第です。