サポート » テーマ » 現在のカテゴリの取得

  • すみません、ド忘れなのか最初から知らなかったのか自信が無くなってしまったので質問させてください。

    例えば
    http://example.com/blog/archives/category/club/club2/
    このようなパーマネントリンクでアーカイブを表示させているとします。
    club カテゴリ の子 club1 です。

    で、記事があっても無くても、この club2 というのを取得したいのですが、どのようにすると一番良いでしょうか?

    要するに、現在選択中のカテゴイが取得したいのです。
    よろしくお願いいたします。

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • モデレーター IKEDA Yuriko

    (@lilyfan)

    get_query_var('cat'); でカテゴリー ID が得られます。

    これだけでは何なので、追加しておくと、single_cat_title() の中身を見て調べましたのでした。年月やタグの場合も同様にすれば、調べられるかと思います。

    なるほどです!
    ちょっと中身調べてみます。

    それと、誤字脱字ばかりの内容をくみ取っていただいてありがとうございました!

    と・・・今、そのようにやってみたのですが、1つも投稿の無いカテゴリのアーカイブになると、0が返ってきてしまいます。

    何か入ってないとダメでしょうかねぇ?

    モデレーター IKEDA Yuriko

    (@lilyfan)

    と・・・今、そのようにやってみたのですが、1つも投稿の無いカテゴリのアーカイブになると、0が返ってきてしまいます。

    出るかと思っていましたが、出ないようですね。となると、wp_title() の中身を解析すればよさそうです。

    $cat = get_query_var('cat');
    	$category_name = get_query_var('category_name');
    	// If there's a category
    	if ( !empty($cat) ) {
    			// category exclusion
    			if ( !stristr($cat,'-') )
    				$title = apply_filters('single_cat_title', get_the_category_by_ID($cat));
    	} elseif ( !empty($category_name) ) {
    		if ( stristr($category_name,'/') ) {
    				$category_name = explode('/',$category_name);
    				if ( $category_name[count($category_name)-1] )
    					$category_name = $category_name[count($category_name)-1]; // no trailing slash
    				else
    					$category_name = $category_name[count($category_name)-2]; // there was a trailling slash
    		}
    		$cat = get_term_by('slug', $category_name, 'category', OBJECT, 'display');
    		if ( $cat )
    			$title = apply_filters('single_cat_title', $cat->name);
    	}

    というコードになっています。get_query_var(‘category_name’) だと投稿数が0でも名前が入ってくるのかもしれません。

    できました!

    と報告に来たのですが、まさにlilyfanさんの言われている内容の通りでした。
    ありがとうございました。

    久しぶりに行き詰まって多少あせりましたが、次に進むことができます。

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • トピック「現在のカテゴリの取得」には新たに返信することはできません。