親カテゴリに属するサブカテゴリのIDを取得する関数
カテゴリー: 独自関数
最終更新日: 2010-08-25
投稿日: 2010-06-15
以前、サブカテゴリ毎に記事をまとめて表示2という記事を書きましたが、少し需要があるようなのでもう少しスマート(だと思える)取得をしてみます。
といっても「怪しい正規表現」から「データベースで直接取得」に変わっただけですけど。
WordPress サブカテゴリのIDを取得する関数
下記の関数をfunctions.php辺りに入れておけばいつでも使えます。
// サブカテゴリIDを取得する関数
function get_subcat_id( $cat_id = null ) {
global $wpdb;
if($cat_id == null) return false;
// サブカテゴリを取得
$sub_cat = $wpdb->get_col($wpdb->prepare("SELECT term_id FROM $wpdb->term_taxonomy WHERE parent=%d", $cat_id));
return $sub_cat;
}
WordPress サブカテゴリのIDを取得する関数
取得できるのは直下のサブカテゴリのみです。
使用方法としては、以下のように使えます。
<?php
// サブカテゴリのIDを取得(親カテゴリのIDを5とする)
$sub_cat = get_subcat_id(5);
// サブカテゴリが存在するか
if($sub_cat) {
// ループして処理
foreach($sub_cat as $id) :
?>
<h3><a href="<?php echo get_category_link($id); ?>"><?php echo get_cat_name($id); ?></a></h3>
<ul>
<?php if (have_posts()) : query_posts("posts_per_page=5&cat=$id&orderby=ID&order=desc"); ?>
<?php while (have_posts()) : the_post(); ?>
<li><?php the_time('y-m-d'); ?> <a href="<?php the_permalink() ?>"><?php the_title(); ?></a></li>
<?php endwhile; endif; ?>
</ul>
<?php
endforeach;
} else {
echo '<p>サブカテゴリは存在しません。</p>';
}
?>
WordPress サブカテゴリのIDを取得する関数
間違いがあればご指摘下さい。
- タグ
- id取得, WordPress備忘録, サブカテゴリ
- トラックバックURL










