サポート » 使い方全般 » 曜日毎にトップを切り替えたい

  • 担当5人で毎日更新されるブログを作成しています。
    月から金までです。

    月曜に見ると、月曜担当者の一覧。
    火曜に見ると、火曜担当者の一覧。というような見え方を
    目指しています。

    プログラムについては、あまり詳しくないのですが。
    これをどうにか実現したいと思っています。

    ご教授お願いします。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • こんにちは。
    回答の前に質問なのですが、土日に見た場合はどのように表示させるおつもりでしょうか?
    それから、一覧を表示させるのはトップページでしょうか、サイドバーでしょうか?

    トピック投稿者 cont96

    (@cont96)

    土日に関しては、金曜のものが残りままで良いイメージです。

    一覧はトップページです。
    コンテンツ部分に閲覧した当日(曜日)のコンテンツが
    一覧で表示されるイメージです。

    現在カテゴリに曜日を設定して
    各曜日担当者が自分の記事を書き込む際にそのカテゴリを
    選んで記事を書いてもらう形を取っています。

    カテゴリの 水曜日 をクリックすると
    水曜日の記事が表出されますが、
    それを見た曜日に合わせてトップで表示したいと言う形です。

    ただ私にはプログラムの知識があまりないため、
    なにか良いお知恵を拝借できればと思っています。

    カテゴリーを用意しなくても、担当者ごとに曜日を指定すればよかったのですが、既に運用中ということで、カテゴリーを使った方法の一例を書きます。

    まず、前提として、各曜日カテゴリーのスラッグが monday, …, friday である必要がありますので、カテゴリースラッグを編集しておいてください。 (後述の $week_table の方を修正しても OK です。)
    次に、お使いのテーマのトップページ用のテンプレートのコンテンツ部分の if (have_posts()) の直前に (の、が多くてごめんなさい)

    <?php
    if ( is_home() ) {
        $the_week = date('w');
        $week_table = array('friday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'friday');
        $category = get_category_by_slug( $week_table[$the_week] );
        if ( $category->term_id )
            query_posts('cat=' . $category->term_id . '&paged=' . $paged );
    }
    ?>

    というコードを挿入してください。以下やっていることの説明です。

    $the_week には、 date(‘w’) によって、アクセスした日の曜日の日曜から土曜までを 0 から 6 までの数値で表現した値が入ります。
    $week_table は、 0 から 6 までの曜日の数値と、曜日カテゴリーのスラッグを対応させるための配列です。土日が金曜と同じ表示になるようにするために、土日も friday に設定しています。
    $the_week を元に $week_table から取り出した曜日カテゴリーのスラッグを get_category_by_slug() に渡し、対応する曜日カテゴリーのオブジェクトを取得し $category に入れます。
    曜日カテゴリーのオブジェクトが上手く取得できれば、そのカテゴリーの ID が $category->term_id に入っているはずなので、 query_posts() で表示させるカテゴリー (cat=n) と現在のページ数 (paged=n) を指定します。

    これでトップページに表示されるのが、対応する曜日カテゴリーの投稿のみになると思います。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック「曜日毎にトップを切り替えたい」には新たに返信することはできません。