| ブログトップ | CMS関連 |

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

メニューに戻る

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

 

カテゴリーID

■MTの場合

<$MTCategoryID$>

■Wordpressの場合

//echoなし:パターン1(※1)
$cat;

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

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

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

 

カテゴリー名(ラベル)

■MTの場合

<$MTCategoryLabel$>

■Wordpressの場合

//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;

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

 

カテゴリー説明(概要)

■MTの場合

<$MTCategoryDescription$>

■Wordpressの場合

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

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

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

 

カテゴリーURL

■MTの場合

<$MTCategoryArchiveLink$>

■Wordpressの場合

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

※3について

 

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

■MTの場合

<$MTCategoryBasename$>

■Wordpressの場合

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

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

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

 

カテゴリーごとの投稿数

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

■MTの場合

<$MTCategoryCount$>

■Wordpressの場合

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

※2について

 

カテゴリーのループ

■MTの場合

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

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

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

■Wordpressの場合

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

//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){
~
}

 

親カテゴリーのデータ

■MTの場合

<MTParentCategory>
~
</MTParentCategory>

■Wordpressの場合

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

※3について

 

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

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

■MTの場合

<MTTopLevelParent>
~
</MTTopLevelParent>

■Wordpressの場合

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

※3について

 

特定のカテゴリーデータ

■MTの場合

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

 

■Wordpressの場合

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

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

 

 

 

注釈

※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私的マニュアル

このエントリーをはてなブックマークに追加

LINEで送る

nandani | 2013年06月26日 | コメント(0) | トラックバック(0) | CMS関連

トラックバック

トラックバックURL

コメントする

※メールアドレスが公開されることはありません。

名前 *
メール*
URL
Copyright(c) 2010 - 2017 ダリの雑記