IT Office Nishimiyahara

個人用スマホから商用プログラミングまでなんでもお任せ下さい

パンくずリストプラグインはパンくず文字列の方にバグがあった

   

@nqounetです。

WordPressは豊富なプラグインが売りの1つです。

そのおかげで、PHPがまるでわからない私でもそれなりのものを作ることができます。

ただ、チョットわかれば貢献できるのになぁ…と思ったりもします。

それはパンくずリスト

「パンくずリスト」というのは、ピンとくる人は来るし、来ない人は来ないと思います。

みたいになっているアレです。

話によると、元の場所に帰ることができるようにパンくずを置いていった、というような逸話からの命名だそうです。

で、システム的に親子関係が構築されていると、そこからパンくずリストを導き出すのはそんなに難しくないので、このメニューは自動的に作成できるのが普通です。

WordPressにもそれはもう沢山あって、多すぎて選ぶのが大変、というくらいあります。

なので、最初から全部試すというのはナシにして、あの手この手を使って使いやすいものを見つけました。

このプラグインは、テンプレートタグ(phpファイルに書く関数を増やすプラグインの事ですかね)タイプのプラグインで、パンくずリストを表示したい場所にPHPを埋め込むことで、その場所にメニューを作成してくれます。

出力するHTMLのカスタマイズは、関数にHTMLを渡すことで、だいたい望み通りのものを作成できます。

最近だと、この辺をテンプレートにするイメージなのですが、前後と間だけなので大したことはありません。

基本的な記述方法

概念的な話は眠くなるので軽く流すと、パンくずリストはその名のとおりリスト形式で表示するべきだ、という意見が多いのか、UL(順序なしリスト)やOL(順序付きリスト)でマークアップされるのが主流だと思うのですが、今回は事情によりP(段落)でのマークアップでした。

残念ながら、このプラグインはPには対応していなかったので、DIVにしたのですが、どうも出力がおかしいなと。

ソースコードを読んでみると、どうやら変数に追記しなければいけないところを上書きにしているようなんですね。

出力用にoutputという変数があるのですが、開始タグを代入した後、本文で上書きして、その後に終了タグを追記しているので、開始タグが足りてない状況なのです。

仕方がないので、本来ならPHPだけを書けば良い所でしたが、Pタグ(結局Pにしましたよ)で括ることにしました。

時間が許せばトライアンドエラーでちゃんと動くようにすることもできたと思いますが、トライを何度もするには手間が掛かり過ぎる環境だったので、手っ取り早い修正方法でお茶を濁しました。

こういう時に、さくっと直してプルリクエスト、というのがオープンソースだなぁ、という感じだと思いますが、まだまだその領域には達していませんでした。

参考になる資料

respo

respo link

ZenBackWidget

 - 情報技術について ,