はぴまむ

子育て中もハッピーに日々を過ごしたい主婦がお仕事のことや役に立った情報などをつづっています。

カスタム投稿タイプ パンくずリストとかを追加する~マテリアル編~

time 2015/07/15

前回のプラグインを使わず カスタム投稿タイプ を追加する~マテリアル編~でカスタム投稿タイプを追加することはできましたが、実はそれだけではなにかが足りないんです。。!

その足りないものとは。。カテゴリー別ページで表示されるカテゴリー名(ターム名)とパンくずリストです!

custom-posts-type-bread01

それではカスタムする前に毎度おなじみ、カスタマイズをする時の大事なお約束。

  • 中の記述を変更するので、万が一のことも考えてバックアップをしっかりとった上で自己責任でお願いします。
  • テーマのバージョンがアップされると上書きされてしまうので、子テーマを作ってそちらでカスタマイズするようにしましょう。

今回も説明で大活躍するのはこのサイトでも使用している無料テーマのマテリアルです!

sponsored link

カテゴリー名を表示させよう

カテゴリー別に表示するページでカテゴリー名(ターム名)が表示されなくてもそこまで不便ではないかもしれません。

でも今なんのカテゴリー別ページにいるんだっけ?なーんて忘れっぽい読み手さん(失礼)だった場合、現在地がわかったほうが親切ですよね。

これもユーザビリティの一環です!たぶん。

なので、カテゴリー別表示のページでカテゴリー名を表示できるようにちょっと追記していきたいと思います。

archive.phpに記述する

archive.phpを開いてこんな記述を探します。

<h1 class="box-header main-color-font">
<?php if(is_category()){ ?><span class="lsf">folder </span><?php single_cat_title(); ?>
<?php }else if(is_tag()){ ?><span class="lsf">tag </span><?php single_cat_title(); ?>
<?php }else if(is_date()){ ?><span class="lsf">time </span><?php year_month(); ?><?php day() ?>
<?php }else if(is_author()){ ?><span class="lsf">user </span><?php the_author(); ?>が書いた記事
<?php } ?>
</h1>

無事みつけたら以下のハイライト部分を追加しましょう。

<h1 class="box-header main-color-font">
<?php if(is_category()){ ?><span class="lsf">folder </span><?php single_cat_title(); ?>
<?php }else if(is_tag()){ ?><span class="lsf">tag </span><?php single_cat_title(); ?>
<?php }else if(is_date()){ ?><span class="lsf">time </span><?php year_month(); ?><?php day() ?>
<?php }else if(is_author()){ ?><span class="lsf">user </span><?php the_author(); ?>が書いた記事
<?php
 }else if(is_tax('ターム名-cat')){?><span class="lsf">folder </span>
<?php echo get_the_term_list($post->ID,'ターム名-cat',' ',' ','');
 ?>
<?php } ?>
</h1>

今回増やしたのは、ページタイトルを表示する時にもしタクソノミーのカテゴリー別ページだったらこの子を表示してあげてねお願い!って記述です。

ターム名-catはfanction.phpで設定した名前と同じものに変えてやればタイトルの表示は完了です。

パンくずリストを表示させよう

では次にパンくずリストが表示させたいと思います。

パンくずリストは今読み手がどこにいるのか、をわかりやすくしてあげるものなので、ユーザビリティ的にはずせない!とゆいくりは思うのです。

なので、パンくずリストも追加していきたいと思います。

今回はカスタムタクソノミーのカテゴリーのパンくずリストを作成します。

bread.phpに記述する

bread.phpを開いて以下の記述を探しましょう。

<?php }else if(is_singular()){ ?>
		<?php
		$postcat = get_the_category();
		$catid = $postcat[0]->cat_ID;
		$allcats = array($catid);
		while(!$catid==0) {
			$mycat = get_category($catid);
			$catid = $mycat->parent;
			array_push($allcats, $catid);
		}
		array_pop($allcats);
		$allcats = array_reverse($allcats);

		?>

見つけたら、ハイライト部分を追記。

<?php }else if(is_singular()){ ?>
		<?php
            $postcat = get_the_category();
            $catid = $postcat[0]->cat_ID;

            if($catid ==''){		

				$tarms ='';
				$taxname = esc_html(get_post_type_object(get_post_type())->name).'-cat';
				//echo $taxname;
				$tarms = get_the_terms(  $post -> ID ,$taxname);
					foreach ( $tarms as $tarm ) {
						$tarmname = $tarm -> taxonomy;
						// スラッグなら $tarm -> slug
                		}
				if($tarmname == 'ターム名-cat'){; ?>
					 &raquo;
					 <li><span class="lsf">folder </span><a href="<?php echo get_post_type_archive_link( 'カスタム投稿名(半角英字)' ); ?>"><span itemprop="title"><?php echo esc_html(get_post_type_object(get_post_type())->label); ?></span></a></li>
					&raquo;
					<li><span class="lsf">folder </span><span itemprop="title"><?php echo get_the_term_list($post->ID,'ターム名-cat',' ',' ',''); ?></span></li>
		<?php }
			}       

            $allcats = array($catid);
            while(!$catid==0) {
                $mycat = get_category($catid);
                $catid = $mycat->parent;
                array_push($allcats, $catid);
            }
            array_pop($allcats);
            $allcats = array_reverse($allcats);

            ?>

もう一箇所こんな記述を探し出して

		<?php endforeach; ?>
		&raquo;  

	<?php } ?>

ハイライト部分を追加してあげます。

		<?php endforeach; ?>
		&raquo;
        <?php
		 }else if(is_post_type_archive('カスタム投稿名(半角英字)')  ){?>
             <li>
                <span class="lsf">folder </span><a href="<?php echo get_post_type_archive_link( 'カスタム投稿名(半角英字)' ); ?>"><span itemprop="title"><?php echo esc_html(get_post_type_object(get_post_type())->label ); ?></span></a>
            </li>
        <?php

		//カスタム投稿のタクソノミー用(カテゴリー表示用)のパンくず
		 }else if(is_tax('ターム名-cat')){;?>
		&raquo;
            <li>
                <span class="lsf">folder </span><a href="<?php echo get_post_type_archive_link( 'カスタム投稿名(半角英字)' ); ?>"><span itemprop="title"><?php echo esc_html(get_post_type_object(get_post_type())->label ); ?></span></a>
            </li>
            &raquo;
            <li>
                <span class="lsf">folder </span><span itemprop="title"><?php echo get_the_term_list($post->ID,'ターム名-cat',' ',' ',''); ?></span>
            </li>
	<?php } ?>

カスタム投稿名(半角英字)とターム名にはfanction.phpで設定したものをいれて関連付けます。
ここを間違えたら、引っ張ってこれないので注意です!

以上でパンくずリストの追加も完了です。お疲れ様でした!

また、Bizvektorの場合はタイトルやパンくずリストを追記しなくても勝手に表示されていました。便利!

パンくずリストとかを追加する まとめ

このタクソノミー系の追加は、元から独自のカスタム投稿タイプを持っていて、カスタムタクソノミーも追加してるよ!ってテーマ以外だと上記の方法で追加しないといけません。

パンくずリストとかいらないよー!って方は別に追加しなくてもOKです。めんどうだもんこれ。。

プラグインでカスタム投稿タイプを追加したんだけど、パンくずリストとかでてこなかったよ。。って方もこの方法で追加できちゃうと思うのでお試しあれ!

上記の通りで追加できるのは無料テーマのマテリアルのみです。

その他のテーマでは追記する場所などが異なると思うので、参考程度にしてみてください。

sponsored link

down

コメントする




sponsored link

はぴまむの中の人

ゆいくり

ゆいくり

30代の子育て中主婦。在宅勤務OK!という理解ある会社に拾っていただき、そこで働きながらフリーランスとしても活動中。webサイト製作などを中心に活動しています。 [詳細]