ダリの雑記:WEBプログラム版

MTタグとWordPressタグ【カテゴリー編】

メニューに戻る

WordPressにおいて、カスタムタクソノミーもカテゴリーと同じように扱うことができますが、割と使用する関数や変数が異なりややこしいので、ここは通常の「カテゴリー」に絞ります。

 

カテゴリーID

■MTの場合

[HTML]
<$MTCategoryID$>
[/HTML]

■Wordpressの場合
[PHP]
//echoなし:パターン1(※1)
$cat;

//echoなし:パターン2
get_cat_ID('カテゴリー名');

//echoなし:パターン3(※2)
$hoge->term_id;
[/PHP]

※1について
※2について

 

カテゴリー名(ラベル)

■MTの場合

[HTML]
<$MTCategoryLabel$>
[/HTML]

■Wordpressの場合

[PHP]
//echoあり(※1)
single_cat_title();

//echoなし:パターン1(※1)(第2引数をfalseにする)
single_cat_title('', false);

//echoなし:パターン2(※3)
get_cat_name($cat);

//echoなし:パターン3(※2)
$hoge->name;
[/PHP]

※1について
※3について
※2について

 

カテゴリー説明(概要)

■MTの場合

[HTML]
<$MTCategoryDescription$>
[/HTML]

■Wordpressの場合

[PHP]
//echoなし:パターン1(※3)
category_description($cat);

//echoなし:パターン2(※2)
$hoge->description;
[/PHP]

※3について
※2について

 

カテゴリーURL

■MTの場合

[HTML]
<$MTCategoryArchiveLink$>
[/HTML]

■Wordpressの場合

[PHP]
//echoなし(※3)
get_category_link($cat);
[/PHP]

※3について

 

カテゴリーベースネーム(スラッグ)

■MTの場合

[HTML]
<$MTCategoryBasename$>
[/HTML]

■Wordpressの場合

[PHP]
//echoなし:パターン1(※4)
$category_name;

//echoなし:パターン2(※2)
$hoge->slug;
[/PHP]

※4について
※2について

 

カテゴリーごとの投稿数

WordPressにおいて、ダイレクトに投稿数を取得できる関数や変数はなさそうです。
一旦get_category()やget_categories()などでデータを取得した後、->countで取り出してください。

■MTの場合

[HTML]
<$MTCategoryCount$>
[/HTML]

■Wordpressの場合

[PHP]
//echoなし(※2)
$hoge->count;
[/PHP]

※2について

 

カテゴリーのループ

■MTの場合

[HTML]
<!--パターン1:すべてのカテゴリーを階層関係なく取得-->
<MTCategories>

</MTCategories>

<!--パターン2:すべてのトップレベルカテゴリーを取得-->
<MTTopLevelCategories>

</MTTopLevelCategories>

<!--パターン3:特定のカテゴリーのサブカテゴリーを取得-->
<mt:SubCategories category="親カテゴリー名">

</mt:SubCategories>
[/HTML]

■Wordpressの場合

基本的にget_categoriesを使えばOKです。条件次第でいろいろな取得ができます。
条件のパラメータについてはこちらのサイトを参照。
get_categories:WordPress私的マニュアル

[PHP]
//echoあり(リスト形式で取得できる)
wp_list_categories('title_li=');

//echoなし:パターン1:すべてのカテゴリーを階層関係なく取得
$hoges = get_categories('get=all');
foreach($hoges as $hoge){

}

//echoなし:パターン2:すべてのトップレベルカテゴリーを取得
$hoges = get_categories('parent=0');
foreach($hoges as $hoge){

}

//echoなし:パターン3:特定のカテゴリーのサブカテゴリーを取得
$hoges = get_categories('parent=親カテゴリーID');
foreach($hoges as $hoge){

}
[/PHP]

 

親カテゴリーのデータ

■MTの場合

[HTML]
<MTParentCategory>

</MTParentCategory>
[/HTML]

■Wordpressの場合

[PHP]
//echoなし
$hoge= get_category($cat);  //※3
if ($hoge->parent) {
$hoge=get_category($hoge->parent);
}

[/PHP]

※3について

 

最上位のカテゴリーデータ

現在のカテゴリーの最上位カテゴリーのデータを取得する方法です。

■MTの場合

[HTML]
<MTTopLevelParent>

</MTTopLevelParent>
[/HTML]

■Wordpressの場合

[PHP]
//echoなし
$hoge = get_category($cat);  //※3
while($hoge->parent) {
$hoge=get_category($hoge->parent);
}

[/PHP]

※3について

 

特定のカテゴリーデータ

■MTの場合

標準だとやり方は無いのかな?
プラグインがこちらのサイトで紹介されていました。
Movable Type で特定のカテゴリの情報を取り出せる SpecificCategory プラグインを公開します-bit part blog-bit part

 

■Wordpressの場合

[PHP]
//echoなし:パターン1
$hoge = get_category($cat);  //※3

//echoなし:パターン2
$hoge =get_category_by_slug("スラッグ名");
[/PHP]

 

 

 

注釈

※1
$catは”カテゴリーテンプレート”で使用できるグローバル変数。カテゴリーIDが取得できます。
また、single_cat_title()も”カテゴリーテンプレート”で使用できる関数。

※2
get_category()やget_the_category()、get_categories()でデータを取得した場合。$hogeは任意の変数。

〇get_category()で取得した場合。
$hoge = get_category($cat);
$hoge->term_id;
$hoge->name;
※引数($catの部分)には"カテゴリーID"が入ります。

〇get_the_category()で取得した場合
$hoges = get_the_category($id);
foreach($hoges as $hoge){
$hoge->term_id;
$hoge->name;
}
※引数($idの部分)には"投稿ID"が入ります。

※3
引数にはカテゴリーIDを渡します。
カテゴリーテンプレートであれば、$catでOK。
$catについては※1参照。

※4
$category_nameはカテゴリーテンプレートや投稿テンプレートで使用できるグローバル変数。
$category_nameは投稿ページで親カテゴリーがある場合は連結されて表示されるので注意。
詳しくはこちらのサイトを参照。
$category_name:WordPress私的マニュアル

モバイルバージョンを終了