Customizable Post Listingsを使用して新着記事を表示する件
-
初めまして。いつも、ブログ系はNucleusを使ってたものです。
今回初めて勉強の意を込めて自社のブログにWPを入れてカスタマイズしてみました。
以下の参照URLのような表示にしたいと思いプラグインを調べていました。▼参照URL
http://bit.ly/RfnQ2NCustomizable Post Listingsというプラグインがあったのですが、カテゴリを表示すると、
各新着記事のタイトル毎にカテゴリ名が表示されてしまうため、各カテゴリ内の新着記事
だけ抜き出す機能を拝借して、カテゴリの表示は自分で作りました。▼ソース(汚いコードでごめんなさい)
function stdclass_to_array($objDATA) { $arrayDATA = (array) $objDATA; $arrayKeys = array_keys($arrayDATA); $intCount = count($arrayKeys); for($i=0;$i<$intCount;$i++){ $arrayDATA[$arrayKeys[$i]] = (array) $arrayDATA[$arrayKeys[$i]]; } return $arrayDATA; } function get_all_category_info() { if ( ! $cat_all = wp_cache_get( 'all_category_all', 'category' ) ) { $cat_all = get_terms( 'category', 'fields=all&get=all&orderby=name' ); wp_cache_add( 'all_category_all', $cat_all, 'category' ); } return $cat_all; } function get_category_newpost($get_category_id) { $cat_info = get_all_category_info(); $cat_info = stdclass_to_array($cat_info); for($i=0;$i<count($cat_info);$i++) { if($cat_info[$i][parent]==0 && $cat_info[$i][term_id]==$get_category_id) { $c_parent = $cat_info[$i][term_id]; // echo "<b>(親:". $cat_info[$i][parent] .")" . $cat_info[$i][term_id] . ":" . $cat_info[$i][name] . "</b><br>"; for($ch=0;$ch<count($cat_info);$ch++) { if($cat_info[$ch][parent]==$c_parent) { echo '<dt>' . $cat_info[$ch][name] . '</dt>'; echo c2c_get_recent_posts($num_posts = 3,$format = "%post_URL%",$categories = $cat_info[$ch][term_id],$orderby = 'date',$order = 'DESC',$offset = 0,$date_format = 'Y-m-d',$authors = '',$post_type = 'post',$post_status = 'publish',$include_passworded_posts = false); echo '<dd class="separate_dd"></dd>'; } } $c_parent = ""; } }}
↑で定義したものを↓のようにして親カテゴリを指定して子カテゴリを出力(追加)
<?php get_category_newpost(559); ?>
動作は、カテゴリを抽出して、親カテゴリ、第一子カテゴリを並べて、
第一子カテゴリに含まれる新着記事を表示しています。この方法で、CPLで出力した新着記事を見ると、リンクの後ろにカテゴリに含まれる記事数が
強制的に表示されてしまいます。for内で回すと表示されて、単独でカテゴリを指定して表示すると記事数が表示されません。
原因について少しでもアドバイス等いただけないでしょうか・・(~_~;)
1件の返信を表示中 - 1 - 1件目 (全1件中)
1件の返信を表示中 - 1 - 1件目 (全1件中)
- トピック「Customizable Post Listingsを使用して新着記事を表示する件」には新たに返信することはできません。