サポート » プラグイン » Ktai Styleで年別アーカイブを表示したい

  • 解決済 ゆたか ちひろ

    (@yuta)


    Ktai Style ver.1.61β3でテーマmonolithを使わせていただいてるのですが
    アーカイブを開いた時にかなり縦長にリストが並び、携帯からは見づらいため

    ・2009年 (10)
    ・2008年 (220)
    ・2007年 (293)

    と言うようにまず年別アーカイブになり
    年を選択すると

    ・2009年2月 (4)
    ・2009年1月 (6)

    と言うように2段階にアーカイブを選択できるようにしたいのですが
    テーマの簡単な変更で出来ますか?
    難しければ現状でも特に困りはしないのですが
    もう少しスマートに画面遷移が出来ればと思い質問しました
    アドバイスいただけると嬉しいです。

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

    (@lilyfan)

    プラグイン作者です。

    なるほど、携帯電話だと、こういう2段階遷移の方がいいですね。年別アーカイブを作るだけならば、さほど難しくなくて、Default テーマの menu_months.php を複製して menu_years.php と命名し、ks_get_archives() の引数にある monthlyyearly に変えるだけです。

    しかし、こうすると、年別メニューをクリックすると、いきなり2008年の投稿タイトル一覧が出てしまい、2008年の各月メニューにはなりません。

    したがって、次の2つの改造が必要です。

    (1) get_year_link() にフィルターする。

    上記要領で作った menu_years.php の1行目、<?phpks_header(); の間に以下の行を入れてください。

    function ks_yearly_menu($link, $year) {
    	return ks_blogurl(false) . '?menu=months&y=' . intval($year);
    }
    add_filter('year_link', 'ks_yearly_menu', 10, 2);

    (以下、ks_header(); が続く)

    (2) menu_months.php の改造

    menu_months.php の方で、年が指定されていたらその年の投稿だけ表示するよう制限をあけます。

    menu_months.php の1行目、<?phpks_header(); の間に以下の行を入れてください。

    function ks_months_a_year_menu($where, $r) {
    	if ($r['type'] == 'monthly' && isset($_GET['y']) && $_GET['y'] > 0) {
    		$where .= sprintf(' AND YEAR(post_date) = %d', intval($_GET['y']));
    	}
    	return $where;
    }
    add_filter('getarchives_where', 'ks_months_a_year_menu', 10, 2);

    あと、footer.php を改造して、?menu=months にリンクしている部分を ?menu=years に変更すれば OK です。

    この機能はいいと思いますので、テストが間に合えば 1.61 正式版に入れてみたいと思います。

    トピック投稿者 ゆたか ちひろ

    (@yuta)

    お礼が遅くなりました、おかげさまで簡単に
    望み通りの表示が出来ました。
    携帯から、かなりスッキリと見やすくなりました
    1.7のリリースも楽しみにして居ます
    ありがとうございました!

    モデレーター IKEDA Yuriko

    (@lilyfan)

    そちらでも動いたようで何よりです。

    この改造ですが、WordPress 2.0, 2.1 では動作しないため、WordPress 2.2 以降専用となります。yearly 指定が 2.1 から導入で、getarchives_where フィルターが 2.2 からの導入となっているためです。

    1.7のリリースも楽しみにして居ます

    すでに 1.61 → 1.70 への改名を察知されているとは!! まだ細かい調整をしているので、今週土曜日ぐらいまでかかってしまうかもしれません。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック「Ktai Styleで年別アーカイブを表示したい」には新たに返信することはできません。