デイトラweb制作(Word Press化その6)

デイトラの卒業課題を1日(1〜2時間)行なっています。

カテゴリーページを動的にする

category.phpを下記に変更します。

<div class="p-cat-items">
     <?php if (have_posts()) : ?>
         <?php while(have_posts()) : ?>
             <?php the_post(); ?>
             <a href="<?php the_permalink(); ?>" class="p-cat-items__card">
                 <div class="p-cat-items-card__img">
                     <?php if(has_post_thumbnail()):?>
                         <?php the_post_thumbnail(); ?>
                         <?php else: ?>
                         <img src="<?php echo get_template_directory_uri() ?>/img/no-img.png" alt="">
                     <?php endif; ?>
                 </div>
                 <div class="p-cat-items-card__body">
                     <div class="p-cat-items-card__meta">
                         <div class="p-cat-items-card__tag"><?php my_the_post_category(false) ?></div>
                         <time datetime="<?php the_time('c'); ?>" class="p-cat-items-card__published"><?php the_time('Y/n/j'); ?></time>
                     </div>
                     <div class="p-cat-items-card__title"><?php the_title(); ?></div>
                 </div>
             </a>
         <?php endwhile; ?>
     <?php endif; ?>
</div>

表示を確認する。

カテゴリータイトルを動的にする

category.phpのタイトル部分を下記に変更します。

<h2 class="p-main-cat__title"><?php the_archive_title(); ?></h2>

フィルターフックを使って「カテゴリー:」を外す

functions.phpに下記を追加する。

/**
 * カテゴリーアーカイブのタイトルから「カテゴリー: 」を取り除く
 */
function remove_category_archive_title_prefix($title) {
  if (is_category()) {
    $title = single_cat_title('', false);
  }
  return $title;
}
add_filter('get_the_archive_title', 'remove_category_archive_title_prefix');

表示を確認する。

結果

今回はフィルターフックを使ってカテゴリーページを動的にしてみました。

仕様書で確認した感じcategory.phpのみ参照するみたいなので、date.phpやtag.phpなどは遷移しないと考えてフィルターフックはシンプルにしてみました。本案件ならクライアントに確認します。

Word Pressのフックシステムは重要かつ便利ですね!

因みにフックについてWord Pressの教科書から引用すると

フックとは、Word Pressの実行プロセスの一定のタイミングで、事前に登録されたコールバックに特定の処理を実行させる仕組みの事です。

Word Pressがページを表示する際に、「コアファイル」を読み込みます。原則コアファイル内は修正してはいけません。理由は、アップデートされるたびに上書きされてしますからです。

そこで「フック」の登場です。

フックには、2種類の「フィルターフック」と「アクションフック」があります。

・アクションフックは特定のタイミングで新しい処理を実行させたい時に使用する。

・フィルターフックは元々の処理の結果を替えたい時に使用する。

つまり、デフォルトに付けてくれている「カテゴリー:」を外したいので結果を替えるフィルターフックで作成しました!

Word Pressには便利な機能があって面白いですね。

次はカテゴリー詳細を作成します!

以上、デイトラweb制作(Word Press化その6)の状況でした。

ご依頼等ありましたら、下記のURLにお問い合わせ下さい。

お問い合わせはこちら

ポートフォリオサイトはこちらになります。

ポートフォリオサイトはこちら