index.phpのブログの記事をカテゴリごとに並べたい
saodozo > index.phpのブログの記事をカテゴリごとに並べたい @ 2014/11/12 11:31 |
---|
saodozoと申します。
現在ブログのindex.phpは記事の一覧が表示されているのですが、 下記のようにindex.phpをカテゴリごとに並べたいです。 どのようにすればよろしいでしょうか? -- カテゴリA--・A記事のコンテンツ1 ・A記事のコンテンツ2 ・A記事のコンテンツ3 -- カテゴリB--・B記事のコンテンツ1 ・B記事のコンテンツ2 ・B記事のコンテンツ3 -- カテゴリC--・C記事のコンテンツ1 ・C記事のコンテンツ2 ・C記事のコンテンツ3 現在のソースは
このようになっております。 出来ない場合、Blog->description() ?>で ブログ名を取得して表示させようと並べようと考えておりますが、 もし、カテゴリごとに並べる方法があればお教えください。 よろしくお願い致します。 ■ BaserCMSのバージョン: 3.0.5.1 |
n1215 > Re: index.phpのブログの記事をカテゴリごとに並べたい @ 2014/11/12 23:11 |
---|
saodozo 様
元の$postsはもったいないですが放っておいて、BcBaserHelperのblogPosts()メソッドを利用するとよいでしょう。 http://basercms.net/reference_3/archives/31 第三引数の$options配列で ・ブログ記事のカテゴリの絞り込み ・ブログ記事表示に利用するテンプレートの名前の指定 などが可能です。 テンプレートの指定がない場合は、デフォルトでapp/webroot/theme/{テーマ名}/Blog/default/posts.phpが利用されます。 ただこちらのテンプレートはトップページの新着情報の表示に利用している事が多いでしょう。 同じディレクトリに好きな名前でブログ表示用のテンプレートを作って指定すると良いかと思います。 例)
※app/webroot/theme/{テーマ名}/Blog/default/myposts.phpを作成 もちろんforeachを利用してコードをすっきり短くまとめても構いません。 Twitter: @n_1215 |
sao > Re: index.phpのブログの記事をカテゴリごとに並べたい @ 2014/11/13 9:25 |
---|
n1215様
ご返事ありがとうございます! お教え頂いた通り、posts.phpをコピーして 表示用のテンプレートにカスタマイズしたところ、無事表示することができました。 ただ問題があって、
category名は日本語で付けていたらきちんと表示してくれませんでした。 英文にしたところ大丈夫だったのですが、日本語で、きちんと表示はできるんでしょうか? |
n1215 > Re: index.phpのブログの記事をカテゴリごとに並べたい @ 2014/11/13 10:33 |
---|
sao 様
「ブログカテゴリタイトル」は日本語も可能ですが、「ブログカテゴリ名」は半角英数字じゃないと正しく動作しないはずです。 編集画面で日本語を入力して保存しようとするとエラーが出ますし、ヘルプチップにもこうあります。 引用: URLに利用されます それともblogPosts()メソッドの引数にブログカテゴリ名ではなくブログカテゴリタイトルを使いたいということですか? これは仕様なので簡単に変更はできません。 Twitter: @n_1215 |
sao > Re: index.phpのブログの記事をカテゴリごとに並べたい @ 2014/11/13 10:47 |
---|
n1215様
そうなんですね。。 ブログカテゴリタイトルとして使用しようと考えておりました。 ブログタイトル名はhtml上で入力する形で対応します。 お教え頂きありがとうございます! それと表示の際のブログ記事の並び順はデフォルトで登録した順番になっておりますが、 これを指定の順番に変更することは可能でしょうか? |
n1215 > Re: index.phpのブログの記事をカテゴリごとに並べたい @ 2014/11/13 12:00 |
---|
sao 様
マニュアルには載っていないみたいですが第三引数の$optionsに並び替え用のキーが用意されています。 http://basercms.net/reference_3/archives/31 https://github.com/baserproject/basercms/blob/dev-3/lib/Baser/Plugin/Blog/View/Helper/BlogBaserHelper.php#L46-L56 'sort' 並び替えのキーとするフィールド名 指定しない場合は'posts_date'が適用される模様 'direction' 昇順('ASC')or 降順('DESC')の指定 となっているみたいです。 Twitter: @n_1215 |
sao > Re: index.phpのブログの記事をカテゴリごとに並べたい @ 2014/11/13 13:44 |
---|
n1215様
無事解決いたしました! 毎回すごく分かりやすい説明ありがとうございます! |