WordPress備忘録

独自関数

WordPressを利用していく上で定義しておくと便利であろう関数を書いてます。

記事表示ここから

パンくずナビリストを返す関数

パンくずナビを返す独自関数です。リンク付きで返ってきます。

どこかにやり方がないかな?と思って探したのですが、パっと目に付いたのがプラグインしかありませんでしたので…。
わざわざパンくずリストぐらいでプラグインを導入するのもどうかと思い、簡単ですが作成しましたので参考になれば、と公開しておきます。

PHP:
  1. function get_pankuzu_navi( $page='page', $id=0 ) {
  2.     $output = '<a href="' . get_bloginfo('url') . '">ホーム</a>>> ';
  3.  
  4.     // idの指定が無い場合は処理しない
  5.     if($id == 0) {
  6.         return $output;
  7.     }
  8.  
  9.     if($page == 'page') {
  10.         $the_post = get_post($id);
  11.         // 親ページを取得
  12.         $ancestor = get_post_ancestors($the_post->parent);
  13.         if(count($ancestor)> 0) {
  14.             // 後方(最上階層)からループ
  15.             for($i=(count($ancestor) - 1); $i> -1; $i--) {
  16.                 $the_page = get_page($ancestor[$i]);
  17.                 $output .= '<a href="' . get_permalink($ancestor[$i]) . '">' . $the_page->post_title . '</a>>> ';
  18.             }
  19.         }
  20.     } else {
  21.         $the_cat = get_the_category($id);
  22.         $the_cat = $the_cat[0];
  23.         $output .= get_category_parents($the_cat->cat_ID, true, ' ≫ ');
  24.     }
  25.  
  26.     return $output;
  27. }

テンプレートファイルのfunctions.phpに載せてやると良いかと思います。
引数ですが、

$page : ナビを返すリストの種類('page' or 'category')

ページの階層表示もしくはカテゴリの階層表示か選択します。

$id : post_id

下記のように使います。

PHP:
  1. // page.phpの場合
  2. echo get_pankuzu_navi('page', $post->ID);
  3.  
  4. // single.phpの場合
  5. echo get_pankuzu_navi('category', $post->ID);

返ってくる形が気に食わない場合は、好きなように改造すれば良いと思います。

記事表示ここまで
リンクここまで

この記事のコメント・トラックバックRSS

コメント・トラックバック ここまで

トラックバック用URL:

コメントフォーム

コメント入力

コメントフォーム
※管理人にのみ公開されます

記事のリンク先URL:http://www.is-p.cc/wordpress/original-function/pankuzu-navi/593

空白
ページのトップに戻る
空白