2013年09月10日 追記・変更

パンくずリストをサイトに導入すると、検索エンジンのクローラーが回りやすい

SEO対策と、ユーザビリティを向上させるにあたり、パンくずリストを利用すると良い。
パンくずリストとは、今現在のページがどこの階層なのか分かりやすくするためのもの。
例)トップページ > カテゴリ名 > 個別記事タイトル名

当サイトでは、プラグインのPrime Strategy Bread Crumbを導入している。
Prime Strategy Bread Crumbをインストール後、パンくずリストを呼び出すコードを記述する。

具体的な記述

<?php if ( function_exists( 'bread_crumb' ) ) { bread_crumb( 'type=string' ); } ?>

パンくずリストが表示された

pankuzu00

プラグインをカスタマイズして表示を変える方法

プラグインのディレクトリのファイル「prime-strategy-bread-crumb.php」を編集する必要がある。
ローカルディレクトリの場合、E:\xampp\htdocs\wp\wp-content\plugins\prime-strategy-bread-crumb\prime-strategy-bread-crumb.phpが該当する。
今回は、ページ毎に「トップページ」の部分を変更する

元々のファイル prime-strategy-bread-crumb.php

灰色の行を変更する。
<?php
/*
Plugin Name: Prime Strategy Bread Crumb
Plugin URI: http://www.warna.info/archives/1310/
Description: This plugin adds the function to display breadcrumbs (topic path) navigation. You can use display styles, lots of parameters of styles and original plugin hooks of breadcrumbs navigation, and you can customize navigations flexibly.
Author: Hitoshi Omagari
Version: 1.0.4
Author URI: http://www.warna.info/
 License: GPLv2 or later
 Text Domain: ps-bread-crumb
 Domain Path: /language/
 PHP Version: Require PHP5
*/
class prime_strategy_bread_crumb{
function __construct() {
	add_action( 'plugins_loaded', array( &$this, 'load_textdomain' ) );
}

public function load_textdomain() {
	load_plugin_textdomain( 'ps-bread-crumb', false, plugin_basename( dirname( __FILE__ ) ) . '/language' );
}


public function bread_crumb( $args = '' ) {

	$default = array(
		'type'				=> 'list',
		'home_label'		=> __( 'Home', 'ps-bread-crumb' ),
		'search_label'		=> __( 'Search Result of "%s"', 'ps-bread-crumb' ),
		'404_label'			=> __( '404 Not Found', 'ps-bread-crumb' ),
		'category_label'	=> _x( '%s', 'category label', 'ps-bread-crumb' ),
		'tag_label'			=> _x( '%s', 'tag label', 'ps-bread-crumb' ),
		'taxonomy_label'	=> _x( '%s', 'taxonomy label', 'ps-bread-crumb' ),
		'author_label'		=> _x( '%s', 'author label', 'ps-bread-crumb' ),
		'attachment_label'	=> _x( '%s', 'attachment label', 'ps-bread-crumb' ),
		'year_label'		=> _x( '%s', 'year label', 'ps-bread-crumb' ),
		'month_label'		=> _x( '%s', 'month label', 'ps-bread-crumb' ),
		'day_label'			=> _x( '%s', 'day label', 'ps-bread-crumb' ),
		'post_type_label'	=> _x( '%s', 'post type label', 'ps-bread-crumb' ),
		'joint_string'		=> __( ' &gt; ', 'ps-bread-crumb' ),
		'navi_element'		=> '',
		'elm_class'			=> 'bread_crumb',
		'elm_id'			=> '',
		'li_class'			=> '',
		'class_prefix'		=> '',
		'current_class'		=> 'current',
		'indent'			=> 0,
		'echo'				=> true,
	);
	$default = apply_filters( 'bread_crumb_default', $default );
	$args = wp_parse_args( $args, $default );

	$elm = in_array( $args['navi_element'], array( 'nav', 'div', '' ) ) ? $args['navi_element'] : 'div';
	$args['elm_id'] = is_array( $args['elm_id'] ) ? $default['elm_id'] : $args['elm_id'];
	$args['elm_id'] = preg_replace( '/[^\w_-]+/', '', $args['elm_id'] );
	$args['elm_id'] = preg_replace( '/^[\d_-]+/', '', $args['elm_id'] );

	$args['class_prefix'] = is_array( $args['class_prefix'] ) ? $default['class_prefix'] : $args['class_prefix'];
	$args['class_prefix'] = preg_replace( '/[^\w_-]+/', '', $args['class_prefix'] );
	$args['class_prefix'] = preg_replace( '/^[\d_-]+/', '', $args['class_prefix'] );

	$args['elm_class'] = $this->sanitize_attr_classes( $args['elm_class'], $args['class_prefix'] );
	$args['li_class'] = $this->sanitize_attr_classes( $args['li_class'], $args['class_prefix'] );
	$args['current_class'] = $this->sanitize_attr_classes( $args['current_class'], $args['class_prefix'] );
	$args['current_class'] = $args['current_class'] ? $args['current_class'] : $args['class_prefix'] . $default['current_class'];
	$args['echo'] = $this->uniform_boolean( $args['echo'], $default['echo'] );

	$tabs = str_repeat( "\t", (int)$args['indent'] );

	$bread_crumb_arr = $this->get_bread_crumb_array( $args );

	$elm_attrs = '';
	if ( $args['elm_id'] ) {
		$elm_attrs = ' id="' . $args['elm_id'] . '"';
	}
	if ( $args['elm_class'] ) {
		$elm_attrs .= ' class="' . $args['elm_class'] . '"';
	}

	$output = '';
	$elm_tabs = '';

	$output = '';
	if ( $elm ) {
		$elm_tabs = "\t";
		$output = $tabs . '<' . $elm;
		if ( $elm_attrs ) {
			$output .= $elm_attrs . ">\n";
		}
	}

	if ( $args['type'] == 'string' ) {
		$output = array();
		$cnt = 1;
		foreach ( $bread_crumb_arr as $ancestor ) {
			if ( $cnt == count( $bread_crumb_arr ) ) {
				$output[] = '<strong class="' . $args['current_class'] . '">' . apply_filters( 'the_title', $ancestor['title'] ) . '</strong>';
			} else {
				$output[] = '<a href="' . $ancestor['link'] . '">' . apply_filters( 'the_title', $ancestor['title'] ) . '</a>';
			}
			$cnt++;
		}
		$output = $elm_tabs . $tabs . implode( esc_html( $args['joint_string'] ), $output );
		$output = apply_filters( 'bread_crumb_after', $output, $args );

	} else {
		$output .= $elm_tabs . $tabs . '<ul';
		if ( ! $elm && $elm_attrs ) {
			$output .= $elm_attrs;
		}
		$output .= ">\n";

		$output = apply_filters( 'bread_crumb_before', $output, $args );

		$cnt = 1;
		foreach ( $bread_crumb_arr as $ancestor ) {
			$classes = array();
			$classes[] = $args['class_prefix'] . 'level-' . $cnt;
			if ( $cnt == 1 ) {
				$classes[] = $args['class_prefix'] . 'top';
			} else {
				$classes[] = $args['class_prefix'] . 'sub';
			}
			if ( $cnt == count( $bread_crumb_arr ) ) {
				$classes[] = $args['class_prefix'] . 'tail';
				$output .= $elm_tabs . $tabs . '	<li class="' . implode( ' ', $classes );
				if ( $args['li_class'] ) {
					$output .= ' ' . $args['li_class'];
				}
				$output .= ' ' .  $args['current_class'];
				$output .= '">' . apply_filters( 'the_title', $ancestor['title'] ) . '</li>' . "\n";
			} else {
				$output .= $elm_tabs . $tabs . '	<li class="' . implode( ' ', $classes );
				if ( $args['li_class'] ) {
					$output .= ' ' . $args['li_class'];
				}
				$output .= '"><a href="' . $ancestor['link'] . '">' . apply_filters( 'the_title', $ancestor['title'] ) . '</a></li>' . "\n";
			}
			$cnt++;
		}
		$output = apply_filters( 'bread_crumb_after', $output, $args );

		$output .= $elm_tabs . $tabs . '</ul>' . "\n";
	}

	if ( $elm ) {
		$output .= $tabs . '</' . $elm . ">\n";
	}

	$output = apply_filters( 'bread_crumb', $output, $args );

	if ( $args['echo'] ) {
		echo $output;
	} else {
		return $output;
	}
}


private function get_bread_crumb_array( $args ) {
	global $post;
 
	$bread_crumb_arr = array();
	$bread_crumb_arr[] = array( 'title' => $args['home_label'], 'link' => get_bloginfo( 'url' ) . '/' );
	$bread_crumb_arr = $this->add_posts_page_array( $bread_crumb_arr );
	if ( is_404() ) {
		$bread_crumb_arr[] = array( 'title' => $args['404_label'], 'link' => false );
	} elseif ( is_search() ) {
		$bread_crumb_arr[] = array( 'title' => sprintf( $args['search_label'], get_search_query() ), 'link' => false );
	} elseif ( is_tax() ) {
		$taxonomy = get_query_var( 'taxonomy' );
		$term = get_term_by( 'slug', get_query_var( 'term' ), $taxonomy );
		if ( is_taxonomy_hierarchical( $taxonomy ) && $term->parent != 0 ) {
			$ancestors = array_reverse( get_ancestors( $term->term_id, $taxonomy ) );
			foreach ( $ancestors as $ancestor_id ) {
				$ancestor = get_term( $ancestor_id, $taxonomy );
				$bread_crumb_arr[] = array( 'title' => $ancestor->name, 'link' => get_term_link( $ancestor, $term->slug ) );
			}
		}
		$bread_crumb_arr[] = array( 'title' => sprintf( $args['taxonomy_label'], $term->name ), 'link' => get_term_link( $term->term_id, $term->slug ) );
	} elseif ( is_attachment() ) {
		if ( $post->post_parent ) {
			if ( $parent_post = get_post( $post->post_parent ) ) {
				$singular_bread_crumb_arr = $this->get_singular_bread_crumb_array( $parent_post, $args );
				$bread_crumb_arr = array_merge( $bread_crumb_arr, $singular_bread_crumb_arr );
			}
		}
		$bread_crumb_arr[] = array( 'title' => $parent_post->post_title, 'link' => get_permalink( $parent_post->ID ) );
		$bread_crumb_arr[] = array( 'title' => sprintf( $args['attachment_label'], $post->post_title ), 'link' => get_permalink( $post->ID ) );
	} elseif ( is_singular() && ! is_front_page() ) {
		$singular_bread_crumb_arr = $this->get_singular_bread_crumb_array( $post, $args );
		$bread_crumb_arr = array_merge( $bread_crumb_arr, $singular_bread_crumb_arr );
		$bread_crumb_arr[] = array( 'title' => $post->post_title, 'link' => get_permalink( $post->ID ) );
	} elseif ( is_category() ) {
		global $cat;

		$category = get_category( $cat );
		if ( $category->parent != 0 ) {
			$ancestors = array_reverse( get_ancestors( $category->term_id, 'category' ) );
			foreach ( $ancestors as $ancestor_id ) {
				$ancestor = get_category( $ancestor_id );
				$bread_crumb_arr[] = array( 'title' => $ancestor->name, 'link' => get_category_link( $ancestor->term_id ) );
			}
		}
		$bread_crumb_arr[] = array( 'title' => sprintf( $args['category_label'], $category->name ), 'link' => get_category_link( $cat ) );
	} elseif ( is_tag() ) {
		global $tag_id;
		$tag = get_tag( $tag_id );
		$bread_crumb_arr[] = array( 'title' => sprintf( $args['tag_label'], $tag->name ), 'link' => get_tag_link( $tag_id ) );
	} elseif ( is_author() ) {
		$author = get_query_var( 'author' );
		$bread_crumb_arr[] = array( 'title' => sprintf( $args['author_label'], get_the_author_meta( 'display_name', get_query_var( 'author' ) ) ), 'link' => get_author_posts_url( $author ) );
	} elseif ( is_day() ) {
		if ( $m = get_query_var( 'm' ) ) {
			$year = substr( $m, 0, 4 );
			$month = substr( $m, 4, 2 );
			$day = substr( $m, 6, 2 );
		} else {
			$year = get_query_var( 'year' );
			$month = get_query_var( 'monthnum' );
			$day = get_query_var( 'day' );
		}
		$month_title = $this->get_month_title( $month );
		$bread_crumb_arr[] = array( 'title' => sprintf( $args['year_label'], $year ), 'link' => get_year_link( $year ) );
		$bread_crumb_arr[] = array( 'title' => sprintf( $args['month_label'], $month_title ), 'link' => get_month_link( $year, $month ) );
		$bread_crumb_arr[] = array( 'title' => sprintf( $args['day_label'], $day ), 'link' => get_day_link( $year, $month, $day ) );
	} elseif ( is_month() ) {
		if ( $m = get_query_var( 'm' ) ) {
			$year = substr( $m, 0, 4 );
			$month = substr( $m, 4, 2 );
		} else {
			$year = get_query_var( 'year' );
			$month = get_query_var( 'monthnum' );
		}
		$month_title = $this->get_month_title( $month );
		$bread_crumb_arr[] = array( 'title' => sprintf( $args['year_label'], $year ), 'link' => get_year_link( $year ) );
		$bread_crumb_arr[] = array( 'title' => sprintf( $args['month_label'], $month_title ), 'link' => get_month_link( $year, $month ) );
	} elseif ( is_year() ) {
		if ( $m = get_query_var( 'm' ) ) {
			$year = substr( $m, 0, 4 );
		} else {
			$year = get_query_var( 'year' );
		}
		$bread_crumb_arr[] = array( 'title' => sprintf( $args['year_label'], $year ), 'link' => get_year_link( $year ) );
	} elseif ( is_post_type_archive() ) {
		$post_type = get_post_type_object( get_query_var( 'post_type' ) );
		$bread_crumb_arr[] = array( 'title' => sprintf( $args['post_type_label'], $post_type->label ), 'link' => get_post_type_archive_link( $post_type->name ) );
	}
	return apply_filters( 'bread_crumb_arr', $bread_crumb_arr, $args );
}


private function get_singular_bread_crumb_array( $post, $args ) {
	$bread_crumb_arr = array();
	$post_type = get_post_type_object( $post->post_type );

	if ( $post_type && $post_type->has_archive ) {
		$bread_crumb_arr[] = array( 'title' => sprintf( $args['post_type_label'], $post_type->label ), 'link' => get_post_type_archive_link( $post_type->name ) );
	}

	if ( is_post_type_hierarchical( $post_type->name ) ) {
		$ancestors = array_reverse( get_post_ancestors( $post ) );
		if ( count( $ancestors ) ) {
			$ancestor_posts = get_posts( 'post_type=' . $post_type->name . '&include=' . implode( ',', $ancestors ) );
			foreach( $ancestors as $ancestor ) {
				foreach ( $ancestor_posts as $ancestor_post ) {
					if ( $ancestor == $ancestor_post->ID ) {
						$bread_crumb_arr[] = array( 'title' => apply_filters( 'the_title', $ancestor_post->post_title ), 'link' => get_permalink( $ancestor_post->ID ) );
					}
				}
			}
		}
	} else {
		$post_type_taxonomies = get_object_taxonomies( $post_type->name, false );
		if ( is_array( $post_type_taxonomies ) && count( $post_type_taxonomies ) ) {
			foreach( $post_type_taxonomies as $tax_slug => $taxonomy ) {
				if ( $taxonomy->hierarchical ) {
					$terms = get_the_terms( $post->ID, $tax_slug );
					if ( $terms ) {
						$term = array_shift( $terms );
						if ( $term->parent != 0 ) {
							$ancestors = array_reverse( get_ancestors( $term->term_id, $tax_slug ) );
							foreach ( $ancestors as $ancestor_id ) {
								$ancestor = get_term( $ancestor_id, $tax_slug );
								$bread_crumb_arr[] = array( 'title' => $ancestor->name, 'link' => get_term_link( $ancestor, $tax_slug ) );
							}
						}
						$bread_crumb_arr[] = array( 'title' => $term->name, 'link' => get_term_link( $term, $tax_slug ) );
						break;
					}
				}
			}
		}
	}
	return $bread_crumb_arr;
}


private function add_posts_page_array( $bread_crumb_arr ) {
	if ( is_page() || is_front_page() ) {
		return $bread_crumb_arr;
	} elseif ( is_category() ) {
		$tax = get_taxonomy( 'category' );
		if ( count( $tax->object_type ) != 1 || $tax->object_type[0] != 'post' ) {
			return $bread_crumb_arr;
		}
	} elseif ( is_tag() ) {
		$tax = get_taxonomy( 'post_tag' );
		if ( count( $tax->object_type ) != 1 || $tax->object_type[0] != 'post' ) {
			return $bread_crumb_arr;
		}
	} elseif ( is_tax() ) {
		$tax = get_taxonomy( get_query_var( 'taxonomy' ) );
		if ( count( $tax->object_type ) != 1 || $tax->object_type[0] != 'post' ) {
			return $bread_crumb_arr;
		}
	} elseif ( is_home() && ! get_query_var( 'pagename' ) ) {
		return $bread_crumb_arr;
	} else {
		$post_type = get_query_var( 'post_type' ) ? get_query_var( 'post_type' ) : 'post';
		if ( $post_type != 'post' ) {
			return $bread_crumb_arr;
		}
	}
	if ( get_option( 'show_on_front' ) == 'page' && $posts_page_id = get_option( 'page_for_posts' ) ) {
		$posts_page = get_post( $posts_page_id );
		$bread_crumb_arr[] = array( 'title' => $posts_page->post_title, 'link' => get_permalink( $posts_page->ID ) );
	}
	return $bread_crumb_arr;
}


private function sanitize_attr_classes( $classes, $prefix = '' ) {
	if ( ! is_array( $classes ) ) {
		$classes = preg_replace( '/[^\s\w_-]+/', '', $classes );
		$classes = preg_split( '/[\s]+/', $classes );
	}

	foreach ( $classes as $key => $class ) {
		if ( is_array( $class ) ) {
			unset( $classes[$key] );
		} else {
			$class = preg_replace( '/[^\w_-]+/', '', $class );
			$class = preg_replace( '/^[\d_-]+/', '', $class );
			if ( $class ) {
				$classes[$key] = $prefix . $class;
			}
		}
	}
	$classes = implode( ' ', $classes );

	return $classes;
}


private function uniform_boolean( $arg, $default = true ) {
	if ( is_numeric( $arg ) ) {
		$arg = (int)$arg;
	}
	if ( is_string( $arg ) ) {
		$arg = strtolower( $arg );
		if ( $arg == 'false' ) {
			$arg = false;
		} elseif ( $arg == 'true' ) {
			$arg = true;
		} else {
			$arg = $default;
		}
	}
	return $arg;
}


private function get_month_title( $monthnum = 0 ) {
	global $wp_locale;
	$monthnum = (int)$monthnum;
	$date_format = get_option( 'date_format' );
	if ( in_array( $date_format, array( 'DATE_COOKIE', 'DATE_RFC822', 'DATE_RFC850', 'DATE_RFC1036', 'DATE_RFC1123', 'DATE_RFC2822', 'DATE_RSS' ) ) ) {
		$month_format = 'M';
	} elseif ( in_array( $date_format, array( 'DATE_ATOM', 'DATE_ISO8601', 'DATE_RFC3339', 'DATE_W3C' ) ) ) {
		$month_format = 'm';
	} else {
		preg_match( '/(^|[^\\\\]+)(F|m|M|n)/', str_replace( '\\\\', '', get_option( 'date_format' ) ), $m );
		if ( isset( $m[2] ) ) {
			$month_format = $m[2];
		} else {
			$month_format = 'F';
		}
	}

	switch ( $month_format ) {
		case 'F' :
			$month = $wp_locale->get_month( $monthnum );
			break;
		case 'M' :
			$month = $wp_locale->get_month_abbrev( $wp_locale->get_month( $monthnum ) );
			break;
		default :
			$month = $monthnum;
	}
	return $month;
}


} // class end
$prime_strategy_bread_crumb = new prime_strategy_bread_crumb();

if ( ! function_exists( 'bread_crumb' ) ) {
function bread_crumb( $args = '' ) {
	global $prime_strategy_bread_crumb;
	return $prime_strategy_bread_crumb->bread_crumb( $args );
}
}

変更した記述

164行目の記述を下記に修正する。if文と条件分岐タグを利用した。
// ページ毎にパンくずリストの表示を変えるにはif文と条件分岐タグを利用
// 投稿ページのみリンクの文字を変更した。
if(is_single()){
	$bread_crumb_arr[] = array( 'title' => 'これは投稿のページのトップです', 'link' => get_bloginfo( 'url' ) . '/' );
}else{
	$bread_crumb_arr[] = array( 'title' => $args['home_label'], 'link' => get_bloginfo( 'url' ) . '/' );
}

変更した後のパンくずリストの表示

pankuzu01
こういった形で変更したい箇所を探した後、条件分岐タグを利用する。
WordPressの条件分岐タグは、覚えるべきWordPressテンプレートタグのページを参照。

この記事が気に入ったら下のボタンをクリック

  • このエントリーをはてなブックマークに追加
  • Clip to Evernote
  • LINEで送る


5 Responses so far.

  1. Hosoda Tomomi より:

    佐藤先生へ

    お疲れさまです!
    早速返信くださり、サイトにアップまでしてくださり、ありがとうございました。感動しております!!
    (サイトのコメント欄とは、ここでいいのかしら・・・・)
    パンくずリストはわかりやすかったので、すぐに出来ました!
    ただ、私はwelcartを使ったショッピングサイトを作成中なのですが、カートの中や、決済ページのパンくずリストは「トップページ」のままでした。
    佐藤先生のお時間をいっぱいとってしまう様でしたら、あきらめますので、すぐに出来るようでしたら、教えてください。

    ドロップダウンメニューの方は・・・土日2日間頑張ってみましたが、結論は・・・出来ませんでした。welcartのテーマが入っているので、どこを変えたらよいのかわからず、お手上げとなってしまいました。
    こちらの方はあきらめます。

    いろいろと対応してくださりありがとうございました。
    引き続き頑張ります。

    細田智美

    • 佐藤 より:

      細田さん

      お疲れ様です。佐藤です。

      >ただ、私はwelcartを使ったショッピングサイトを作成中なのですが、カートの中や、決済ページのパンくずリストは「トップページ」のままでした。

      適用しているテーマは、「Welcart Default Theme」でしょうか?

      僕の方でもWelcartを実際に導入してみました。
      見たところ、Welcartはカスタム投稿タイプ機能を利用して、「投稿」と「固定ページ」を作っているようですね。

      パンくずリストをどこに表示させているのか分かりませんが、恐らくheader.php内でしょうか?

      サンプルで掲載したコードは、「投稿」のみ表示を変える条件式を使ってます。
      Welcartの「カートの中」や「決済ページ」は「固定ページ」のようです。
      ですので、条件式を変更する必要があります。

      はじめてのWordPressまとめの「覚えるべきWordPressテンプレートタグ」のよく利用するWordPressテンプレートタグ(9)を確認してみて下さい。
      https://www.wordpressmatome.com/%E8%A6%9A%E3%81%88%E3%82%8B%E3%81%B9%E3%81%8Dwordpress%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%82%BF%E3%82%B0/

      Welcartの場合、固定ページのようなのでis_single()のまま使用してはだめですよ。
      is_single()は「投稿」ですから。

      if文の条件式に下記のように条件分岐タグを使えば修正が可能です。
      is_singular()など使われてはいかがでしょうか?
      is_singular()は、is_single()、is_page() 、is_attachment() のいずれかかを判定する条件分岐タグです。

      // ページ毎にパンくずリストの表示を変えるにはif文の条件式に「条件分岐タグ」を利用
      if(is_singular()){
      $bread_crumb_arr[] = array( 'title' => 'これは投稿のページのトップです', 'link' => get_bloginfo( 'url' ) . '/' );
      }else{
      $bread_crumb_arr[] = array( 'title' => $args['home_label'], 'link' => get_bloginfo( 'url' ) . '/' );
      }

      >ドロップダウンメニューの方は・・・土日2日間頑張ってみましたが、結論は・・・出来ませんでした。welcartのテーマが入っているので、どこを変えたらよいのかわからず、お手上げとなってしまいました。
      動的サイトの編集をする際は、サイトのソースを保存して、保存したファイルをローカルで閲覧すると分かりやすいですよ。

      もう必要ないかもしれませんが、ドロップダウンメニューに関してはこちらのサイトも分かりやすそうです。
      参考にしてみて下さい。
      http://www.keibunsya.co.jp/modules/features/index.php?content_id=103

      • Hosoda Tomomi より:

        佐藤先生へ

        お疲れ様です。

        早々に対応して頂きありがとうございました!!
        パンくずリスト、出来ました!!
        意味もよくわかり、とても勉強になりました。感謝です!
        実際にwelcartまで入れてみて下さり・・・恐縮しております・・・

        お忙しい中、いろいろとありがとうございました。
        卒業制作提出まであと3日なので、ドロップダウンメニューに関しましては、間に合うかわかりませんが、卒業制作の提出には間に合わなかったとしても、教えて頂いたサイトを参考に挑戦しようと思っています。

        今後も、こちらのサイトで勉強していきますので、よろしくお願いいたします。

        細田智美

        • 佐藤 より:

          細田さんへ

          お疲れ様です。佐藤です。

          >パンくずリスト、出来ました!!
          >意味もよくわかり、とても勉強になりました。感謝です!

          上手くいったようで良かったです。
          オリジナルテーマ作成のページ等も作り直してあるので、もし時間があったら確認してみてくださいね。

          卒業制作、もう少しなんですね。
          頑張って下さいね。

  2. [...] 『はじめてのWordPressまとめ –パンくずリストを作るプラグインPrime Strategy Bread Crumbを利用してSEO対策』から。 [...]

Leave a Reply