カレンダー
2010年9月
« 7月    
 12345
6789101112
13141516171819
20212223242526
27282930  
カテゴリー
アーカイブ

Posts Tagged ‘プラグイン’

ソースコードを綺麗に表示するプラグイン

ソースコードを綺麗に表示させるプラグインを入れてみた。

[php]コードだよ[/php]

と書けば

コードだよ

と、表示してくれる。

他にも色々な言語に対応しているようだ。



get_post関数について

連続投稿。
前記事と同じくパン屑リストのことなので迷ったが別記事にした。

実はArtisteerで作成したテーマにて
プラグイン「Breadcrumb NavXT」を適用すると
ページの中のページ(つまり子ページ)に入った際に
パン屑リストが上手く表示されなかった。
で、その解決に至るまでのメモ(というか、愚痴・・・か?)

まずテーマによるものって判るまでにかなり時間を掛けてしまったorz
プラグインの干渉???それともwordpressを2.9.1にしたから???
プラグインのバグ???とか色々試行錯誤・・・(T_T)

ただ、テーマを変えてみると普通に表示されることが発覚!
おぉ!って事はArtisteer(で作成したテーマ)が悪いんじゃん!ってことで
やっと原因の特定に至る。

結論としては、
パン屑リスト表示前にテーマのメニュー部分の表示する動きとして
テーマ内のfunction.phpののart_activeIDという関数を通るのだが、
その中でget_page関数が呼ばれている。
(↑get_page自体はwordpressのwp_include/post.phpに実体がある)

さらにget_page中で呼ばれるget_post関数の
引数にてグローバル変数を参照渡しで渡していて

get_post関数でグルーバルの$postを配列から見つかった子のpostidに書き変えていた。
(↑get_postもwordpressのwp_include/post.phpに実体がある)

 

・・・ん?じゃあ、get_page読んでるだけのArtisteer作成テーマは無実じゃん!!
書き変わってるところではglobalの$postに対し宣言すらしてないし!!

そもそも$postに直idの値を入れて良いのか???
プラグイン作成する時にも、そんなこと想定して作成してないってば!!
・・・と、憤りさえ感じたが、まぁ、WP本体なので仕方がない・・・。

ま、とにかく$postが書き変わってしまった為に
その後にBreadcrumb NavXTが呼ばれても
正しく$postが取れないくて表示されなかった・・・という訳だ。

テーマ内の関数の動きとして、
子のIDを取って自分の配列に入れるって事をやりたいだけのようなので
そのget_page前にグローバルのpostをクローンで複製しておいて
関数最後にpostの中身を元に戻す動きに変え、正しく表示されるようになった♪

ふぅ~疲れた・・・。

あと、今回根本的なこととして
知ったのだが、

get_page関数はidを参照渡しにしているので、
idを数字で直指定することは出来ない!

パン屑リストをつけよう

パン屑リストとは
記事の階層を見せる奴だ。

TOP > カテゴリー > wordpress

みたいなやつ。

wordpressのテンプレートタグで付けることも可能みたいだけど
プラグインを適用してみた。

このプラグインの日本語版を提供しているサイトも紹介

プラグイン適用後にテーマのphpを編集しなければいけない。

<div class=”breadcrumb”>
<?php
if ( function_exists( ‘bcn_display’ ) ) {
bcn_display();
}
?>
</div>

と書けばOK。
意味的には「bcn_displayがあればbcn_display関数を呼べ」ていう意味。

これで、その場所にパン屑リストが表示される。