概要

OLBsystem には、簡易的な「日別スケジュール一覧(講師一覧)」があり、固定ページにショートコードを挿入すれば表示させることができます。
ただ、その一覧は表示形式が固定されているので、他の情報も載せたい場合には、「講師」カテゴリーのアーカイブページを利用して、独自に講師一覧ページを作ることもできます。

 

スクリーンショット

ショートコードによる「日別スケジュール」

ショートコードによる「日別スケジュール」

カテゴリーアーカイブの利用例

カテゴリーアーカイブの利用例

 

手順

[改訂: 2013-10-15] WordPressテーマ「Twenty Thirteen」版に改めました。

ここではWordPressテーマTwenty TwelveTwenty Thirteen」の「category.php」をベースとして、新たに「講師」カテゴリーアーカイブテンプレートを作成します。

各講師の紹介記事が「講師」カテゴリ(スラッグ名:teacher)に投稿されているという前提で、「講師」カテゴリーアーカイブテンプレートは「category-teacher.php」となります。

以下、「category-teacher.php」のサンプルです。
各記事で「アイキャッチ画像」に講師近影を指定しているという前提です。

/*
 *  「講師(teacher)」カテゴリだけ1ページ当たりの記事数を3件にする
 */
add_action('pre_get_posts', 'categoryTeacherPerPage');
function categoryTeacherPerPage($wp_query){
  if(!is_admin()) {
    if($wp_query->is_main_query() && $wp_query->is_category('teacher')){
      $wp_query->set('posts_per_page', 3 );
    }
  }
}
<?php
/*
 *  「講師(teacher)」カテゴリのテンプレート
 */
get_header(); ?>

  <div id="primary" class="content-area">
    <div id="content" class="site-content" role="main">

    <?php if ( have_posts() ) : ?>
      <header class="archive-header">
        <h1 class="archive-title"><?php printf( __( 'Category Archives: %s', 'twentythirteen' ), single_cat_title( '', false ) ); ?></h1>

        <?php if ( category_description() ) : // Show an optional category description ?>
        <div class="archive-meta"><?php echo category_description(); ?></div>
        <?php endif; ?>
      </header><!-- .archive-header -->

      <article class="post type-post status-publish format-standard hentry">
        <div class="entry-content">
          <div id="list_pagenavi" class="list_pagenavi">
            <div id="prev_page" class="prev_page">&nbsp;</div>
            <div id="list_datenavi" class="list_datenavi">
            <?php
              echo olbPaging::getPrevDateLink($olb->startdate, -1, '&laquo; 前日', $_SERVER['QUERY_STRING']);
              echo $olb->startdate;
              echo olbPaging::getNextDateLink($olb->startdate,  1, '翌日 &raquo;', $_SERVER['QUERY_STRING']);
            ?>
            </div>
            <div id="next_page" class="next_page">&nbsp;</div>
          </div>

          <div style="margin:10px auto;">
            <div style="width:100px; float:left;">
              <div style="height:160px; border: 1px solid #ccc; border-width: 0 1px 1px 0">&nbsp;</div>
              <?php $olb->dailyTime(); ?>
            </div>
          <?php
          while ( have_posts() ) : the_post();
            ?>
            <div style="width:150px; float:left;">
              <div style="height:160px; text-align:center; border: 1px solid #ccc; border-width: 1px 1px 0 0">
                <a href="<?php the_permalink(); ?>" style="display:block; padding-top:5px"><?php the_post_thumbnail(array(100,100)); ?></a><br>
                <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
              </div>
              <?php
              $teacher_id = olbFunction::getTeacherIdFromPost($post->post_content);
              $olb->dailyStatus($teacher_id, 'a');
              ?>
            </div>
            <?php
          endwhile;
          ?>
          </div>
        </div><!-- .entry-content -->
        <footer class="entry-meta">
        </footer><!-- .entry-meta -->
      </article><!-- #post -->
      <?php if ( $wp_query->max_num_pages >= 2 ) : ?>
      <nav class="navigation paging-navigation" role="navigation">
        <h1 class="screen-reader-text"><?php echo '投稿ナビゲーション'; ?></h1>
        <div class="nav-links">

          <?php if ( get_next_posts_link() ) : ?>
          <div class="nav-previous"><?php next_posts_link( '<span class="meta-nav">&larr;</span> 次ページ' ); ?></div>
          <?php endif; ?>

          <?php if ( get_previous_posts_link() ) : ?>
          <div class="nav-next"><?php previous_posts_link( '前ページ <span class="meta-nav">&rarr;</span>' ); ?></div>
          <?php endif; ?>

        </div><!-- .nav-links -->
      </nav><!-- .navigation -->
      <?php endif; ?>

    <?php else : ?>
      <?php get_template_part( 'content', 'none' ); ?>
    <?php endif; ?>

    </div><!-- #content -->
  </div><!-- #primary -->

<?php get_sidebar(); ?>
<?php get_footer(); ?>