eラーニング(学習管理:LMS)作成プラグイン「senseiLMS」。
初期設定方法についてはこちら
ちなみに使用テーマ:Lightning(pro)

さて、いろいろ作りこんでいくと、どうしても気になるところが出てくる。
レッスンを開始した時のパンくずリストだ。

ここ親要素が「レッスン」になっているのだが
そもそもここは、「(それらが属する)コース」じゃないと、あまり意味がないと思うわけです。
(レッスンでくくられても、他のコースのレッスンが一覧で表示されても意味がない)

ここを該当コースに変更してあげましょう。

パンくずのphp(breadcrumb.php)を編集することになります。
※なければ作成(※もちろん「子テーマ」推奨

<?php

function lightning_bread_crumb() {
	/*-------------------------------------------*/
	/*  Lightning BreadCrumb
	/*-------------------------------------------*/

	global $wp_query;

	// Get Post type info
	/*-------------------------------------------*/
	$postType = lightning_get_post_type();

	// Get Post top page info
	/*-------------------------------------------*/
	$page_for_posts = lightning_get_page_for_posts();

	// Microdata
	// http://schema.org/BreadcrumbList
	/*-------------------------------------------*/
	$microdata_li        = ' itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"';
	$microdata_li_a      = ' itemprop="item"';
	$microdata_li_a_span = ' itemprop="name"';

	$panListHtml = '<!-- [ .breadSection ] -->
<div class="section breadSection">
<div class="container">
<div class="row">
<ol class="breadcrumb" itemtype="http://schema.org/BreadcrumbList">';

	  $panListHtml .= '<li id="panHome"' . $microdata_li . '><a' . $microdata_li_a . ' href="' . home_url( '/' ) . '"><span' . $microdata_li_a_span . '><i class="fa fa-home"></i> HOME</span></a></li>';

	/* Post type
	/*-------------------------------*/

	if ( is_archive() || ( is_single() && ! is_attachment() ) ) {

		if ( $postType['slug'] == 'post' || is_category() || is_tag() ) { /* including single-post */
			if ( $page_for_posts['post_top_use'] ) {
				if ( ! is_home() ) {
					$panListHtml .= '<li' . $microdata_li . '><a' . $microdata_li_a . ' href="' . esc_url( $postType['url'] ) . '"><span' . $microdata_li_a_span . '>' . $postType['name'] . '</span></a></li>';
				} else {
					$panListHtml .= '<li><span>' . get_the_title( '', '', false ) . '</span></li>';
				}
			}
		} else {
			if ( is_single() || is_date() || is_tax() || is_author() ) {
				
////////////////////////////////////////////////////////////////
// 2020.8.7 custom
////////////////////////////////////////////////////////////////

				if(get_post_type() !== 'course' && get_post_type() !== 'lesson'){
					$panListHtml .= '<li' . $microdata_li . '><a' . $microdata_li_a . ' href="' . esc_url( $postType['url'] ) . '"><span' . $microdata_li_a_span . '>' . $postType['name'] . '</span></a></li>';
				}elseif(get_post_type() === 'lesson'){
					global $post;
					$course_id = get_post_meta($post->ID, '_lesson_course', true);
					$course_title = get_post($course_id)->post_title;
					$course_link = get_permalink($course_id);
					$panListHtml .= '<li' . $microdata_li . '><a' . $microdata_li_a . ' href="' . esc_url($course_link) . '"><span' . $microdata_li_a_span . '>' . esc_attr($course_title) . '</span></a></li>';
				}
				
////////////////////////////////////////////////////////////////
// 2020.8.7 custom
////////////////////////////////////////////////////////////////

			} else {
				$panListHtml .= '<li><span>' . $postType['name'] . '</span></li>';
			}
		}
	}

	if ( is_home() ) {

		/*
		When use to post top page
		When "is_page()" that post top is don't display.
		*/
		if ( isset( $postType['name'] ) && $postType['name'] ) {
			$panListHtml .= '<li><span>' . $postType['name'] . '</span></li>';
		}
	} elseif ( is_category() ) {

		/* Category
		/*-------------------------------*/

		// Get category information & insert to $cat
		$cat = get_queried_object();

		// parent != 0  >>>  Parent exist
		if ( $cat->parent != 0 ) :
			// 祖先のカテゴリー情報を逆順で取得
			$ancestors = array_reverse( get_ancestors( $cat->cat_ID, 'category' ) );
			// 祖先階層の配列回数分ループ
			foreach ( $ancestors as $ancestor ) :
				$panListHtml .= '<li' . $microdata_li . '><a' . $microdata_li_a . ' href="' . get_category_link( $ancestor ) . '"><span' . $microdata_li_a_span . '>' . esc_html( get_cat_name( $ancestor ) ) . '</span></a></li>';
			endforeach;
			endif;
		$panListHtml .= '<li><span>' . $cat->cat_name . '</span></li>';

	} elseif ( is_tag() ) {

		/* Tag
		/*-------------------------------*/

		$tagTitle     = single_tag_title( '', false );
		$panListHtml .= '<li><span>' . $tagTitle . '</span></li>';

	} elseif ( is_tax() ) {

		/* term
		/*-------------------------------*/

		$now_term        = $wp_query->queried_object->term_id;
		$now_term_parent = $wp_query->queried_object->parent;
		$now_taxonomy    = $wp_query->queried_object->taxonomy;

		// parent が !0 の場合 = 親カテゴリーが存在する場合
		if ( $now_term_parent != 0 ) :
			// 祖先のカテゴリー情報を逆順で取得
			$ancestors = array_reverse( get_ancestors( $now_term, $now_taxonomy ) );
			// 祖先階層の配列回数分ループ
			foreach ( $ancestors as $ancestor ) :
				$pan_term     = get_term( $ancestor, $now_taxonomy );
				$panListHtml .= '<li' . $microdata_li . '><a' . $microdata_li_a . ' href="' . get_term_link( $ancestor, $now_taxonomy ) . '"><span' . $microdata_li_a_span . '>' . esc_html( $pan_term->name ) . '</a></li>';
			endforeach;
		endif;

		$panListHtml .= '<li><span>' . esc_html( single_cat_title( '', '', false ) ) . '</span></li>';

	} elseif ( is_author() ) {

		/* Author
		/*-------------------------------*/

		$userObj      = get_queried_object();
		$panListHtml .= '<li><span>' . esc_html( $userObj->display_name ) . '</span></li>';

	} elseif ( is_archive() && ( ! is_category() || ! is_tax() ) ) {

		/* Year / Monthly / Dayly
		/*-------------------------------*/

		if ( is_date() ) {
			$panListHtml .= '<li><span>' . esc_html( get_the_archive_title() ) . '</span></li>';
		}
	} elseif ( is_single() ) {

		/* Single
		/*-------------------------------*/

		// Case of post

		if ( $postType['slug'] == 'post' ) {
			$category = get_the_category();
			if ( $category ) {
				// get parent category info
				$parents = array_reverse( get_ancestors( $category[0]->term_id, 'category', 'taxonomy' ) );
				array_push( $parents, $category[0]->term_id );
				foreach ( $parents as $parent_term_id ) {
					$parent_obj   = get_term( $parent_term_id, 'category' );
					$term_url     = get_term_link( $parent_obj->term_id, $parent_obj->taxonomy );
					$panListHtml .= '<li' . $microdata_li . '><a' . $microdata_li_a . ' href="' . $term_url . '"><span' . $microdata_li_a_span . '>' . esc_html( $parent_obj->name ) . '</span></a></li>';
				}
			}
			// Case of custom post type

		} else {

////////////////////////////////////////////////////////////////
// 2020.8.7 custom
////////////////////////////////////////////////////////////////

			if(get_post_type() !== 'course'){
				
			$taxonomies = get_the_taxonomies();

			// To avoid WooCommerce default tax
			foreach ( $taxonomies as $key => $value ) {
				if ( $key != 'product_type' ) {
					$taxonomy = $key;
					break;
				}
			}

			if ( $taxonomies ) :
				$terms = get_the_terms( get_the_ID(), $taxonomy );

				//keeps only the first term (categ)
				$term = reset( $terms );
				if ( 0 != $term->parent ) {

					// Get term ancestors info
					$ancestors = array_reverse( get_ancestors( $term->term_id, $taxonomy ) );
					// Print loop term ancestors
					foreach ( $ancestors as $ancestor ) :
						$pan_term     = get_term( $ancestor, $taxonomy );
						$panListHtml .= '<li' . $microdata_li . '><a' . $microdata_li_a . ' href="' . get_term_link( $ancestor, $taxonomy ) . '"><span' . $microdata_li_a_span . '>' . esc_html( $pan_term->name ) . '</span></a></li>';
					endforeach;
				}
				$term_url     = get_term_link( $term->term_id, $taxonomy );
				$panListHtml .= '<li' . $microdata_li . '><a' . $microdata_li_a . ' href="' . $term_url . '"><span' . $microdata_li_a_span . '>' . esc_html( $term->name ) . '</span></a></li>';
				endif;

		}

////////////////////////////////////////////////////////////////
// 2020.8.7 custom
////////////////////////////////////////////////////////////////

		}
			$panListHtml .= '<li><span>' . get_the_title() . '</span></li>';

	} elseif ( is_page() ) {

		/* Page
		/*-------------------------------*/

		$post = $wp_query->get_queried_object();
		if ( $post->post_parent == 0 ) {
			$panListHtml .= '<li><span>' . get_the_title() . '</span></li>';
		} else {
			$ancestors = array_reverse( get_post_ancestors( $post->ID ) );
			array_push( $ancestors, $post->ID );
			foreach ( $ancestors as $ancestor ) {
				if ( $ancestor != end( $ancestors ) ) {
					$panListHtml .= '<li' . $microdata_li . '><a' . $microdata_li_a . ' href="' . get_permalink( $ancestor ) . '"><span' . $microdata_li_a_span . '>' . strip_tags( apply_filters( 'single_post_title', get_the_title( $ancestor ) ) ) . '</span></a></li>';
				} else {
					$panListHtml .= '<li><span>' . strip_tags( apply_filters( 'single_post_title', get_the_title( $ancestor ) ) ) . '</span></li>';
				}
			}
		}
	} elseif ( is_404() ) {

		/* 404
		/*-------------------------------*/

		$panListHtml .= '<li><span>' . __( 'Not found', 'lightning-pro' ) . '</span></li>';

	} elseif ( is_search() ) {

		/* Search result
		/*-------------------------------*/

		$panListHtml .= '<li><span>' . sprintf( __( 'Search Results for : %s', 'lightning-pro' ), get_search_query() ) . '</span></li>';

	} elseif ( is_attachment() ) {

		/* Attachment
		/*-------------------------------*/

		$panListHtml .= '<li><span>' . get_the_title( '', '', false ) . '</span></li>';
	
	}
	$panListHtml .= '</ol>
</div>
</div>
</div>
<!-- [ /.breadSection ] -->';
	return $panListHtml;
}
$panListHtml = lightning_bread_crumb();
$panListHtml = wp_kses_post( apply_filters( 'lightning_panListHtml', $panListHtml ) );
echo $panListHtml;

////////
custom
////////

でくくったところが、主な追記箇所。

ご自身のテーマと見比べて、ご参考ください。

 

ちなみに:いっそのこと「非表示」にする方法

めんどくさいので、とりあえずパンくずリストそのものを「非表示」にしたい場合。

追加CSSに下記記述。「display:none」というのが「非表示」という命令。


ol.breadcrumb{
display:none;
}

 

    コメントを残す