| MySQL server has gone awayブログトップ | CMS関連 | さくらインターネットに大容量のDBデータをインポートする
MTタグとWordPressタグ【カテゴリー編】
この記事は1年以上前の記事のため、内容が古い可能性があります。
WordPressにおいて、カスタムタクソノミーもカテゴリーと同じように扱うことができますが、割と使用する関数や変数が異なりややこしいので、ここは通常の「カテゴリー」に絞ります。
- カテゴリーID
- カテゴリー名(ラベル)
- カテゴリー説明(概要)
- カテゴリーURL
- カテゴリーベースネーム(スラッグ)
- カテゴリーごとの投稿数
- カテゴリーのループ
- 親カテゴリーのデータ
- 最上位のカテゴリーデータ
- 特定のカテゴリーデータ
カテゴリーID
■MTの場合
<$MTCategoryID$>
■Wordpressの場合
//echoなし:パターン1(※1) $cat; //echoなし:パターン2 get_cat_ID('カテゴリー名'); //echoなし:パターン3(※2) $hoge->term_id;
カテゴリー名(ラベル)
■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;
カテゴリー説明(概要)
■MTの場合
<$MTCategoryDescription$>
■Wordpressの場合
//echoなし:パターン1(※3) category_description($cat); //echoなし:パターン2(※2) $hoge->description;
カテゴリーURL
■MTの場合
<$MTCategoryArchiveLink$>
■Wordpressの場合
//echoなし(※3) get_category_link($cat);
カテゴリーベースネーム(スラッグ)
■MTの場合
<$MTCategoryBasename$>
■Wordpressの場合
//echoなし:パターン1(※4) $category_name; //echoなし:パターン2(※2) $hoge->slug;
カテゴリーごとの投稿数
WordPressにおいて、ダイレクトに投稿数を取得できる関数や変数はなさそうです。
一旦get_category()やget_categories()などでデータを取得した後、->countで取り出してください。
■MTの場合
<$MTCategoryCount$>
■Wordpressの場合
//echoなし(※2) $hoge->count;
カテゴリーのループ
■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); } ~
最上位のカテゴリーデータ
現在のカテゴリーの最上位カテゴリーのデータを取得する方法です。
■MTの場合
<MTTopLevelParent> ~ </MTTopLevelParent>
■Wordpressの場合
//echoなし $hoge = get_category($cat); //※3 while($hoge->parent) { $hoge=get_category($hoge->parent); } ~
特定のカテゴリーデータ
■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私的マニュアル
nandani | 2013年06月26日 | コメント(0) | トラックバック(0) | CMS関連
トラックバック
トラックバックURL
コメントする
※メールアドレスが公開されることはありません。