Archive for 1月, 2010
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関数を呼べ」ていう意味。
これで、その場所にパン屑リストが表示される。
Artisteerを買ってみた
Artisteerとはテーマカスタマイズのツールだ。
テンプレートの作成は
もちろん自分で1から作成することも出来るのだが、
XHTML、PHP,Wordpressのテンプレートタグなどを
知らなくてはならないので、最初は難しいとおもう。
(自分は今でもよく判ってなかったりする)
で、簡単に作成出来ないかネットで検索すると
オンライン上でカスタマイズが出来るサイトもいくつか見つけた。
これらでもある程度作成出来ると思うのでお勧めなのですが、
自分は有償でももっと細かく出来るものが欲しくて
というツールを買った。
購入しなくても試用版として動かせるので試してみるのも良いかも。
(但し購入しないとTrialとか言う透かし文字が入った画像となってしまう。)
価格はWordpressとHTMLのみのホームで日本円で5000円。
ためしに20分ぐらいで作成してサイトに適用してみた。
まぁ、このツールでもどうしても細かくは出来ない事もあるので、
その時は手修正が必要になるだろうが、
個人で使うには十分すぎる性能だと思う。
ビジュアルエディタをカスタマイズするプラグイン
wordpressの投稿画面は
ビジュアルエディタとHTMLエディタとある。
ビジュアルエディタではword感覚で文字入力できる。
標準のままでも十分なのだが、より便利にする為にプラグインを入れてみた。
プラグインを挙げ適用すると「設定」メニューに専用の設定項目が追加されるので、
そこでカスタマイズ。(※注)設定メニューは英語です。)
これで、大分表現しやすくなるかと思う。
改行プラグインを入れてみる
wordpressの仕様では思ったとおりに改行することができない。
(勝手にタグを削ってしまう。) ので、改行するためのプラグインを探してみた。
一番有名なのは「brBrbr」というプラグインのようだ。
とりあえずDLしてソース(中身)を見てみる。
(リンクはトップに張ってます。カテゴリーの「wordpress」でプラグイン記事が見つかります)
中のソースを見るみると wpautopっていうフィルターを無くして
独自のフィルターをaddしてる。
追加したフィルター関数の中で 文字列を置換・・・しているようだが、
用途によりpreg_replaceとstr_replaceを分けているようだ。
って、何が違うのかよく判らないけど、
正規表現する場合はpreg系って事???
あと、pregの方は複数値の検索も出来るのか???
うーん・・・まだ、判らないことだらけだ・・・OTZ
・・・話がそれたが、とりあえず次に適用してみて動きを確認してみる。
・・・うーん・・・確かに便利かも・・・でも、自分が望む動きとはちょっと異なる。。。
(決して否定しているわけではありません。)
・・・って、事で別のプラグインを探してみる。
次に「PS Disable Auto Formatting」というのを試してみる。
中身を見る・・・なんか同じ改行コードのプラグインなのに、
物凄く中身あるなぁ・・・って、ちょっと見ただけじゃ動き判らん!
仕事だったら、ちゃんと動き確認するが。。。まぁ、とりあえず適用してみよう!
おぉ、適用すると管理メニューに設定もある。
無駄に改行させてみる。
なるほど・・・・brBrbrは名前どおりbrタグだが、
こちらの場合はPタグなのか。
xhtmlではbrタグ連投は非推奨だったと思うから(多分)
自分としてはこちらのほうが実用的か???←個人的意見
ん?じゃあbrは逆にどうなるんだ?
ってことでbr入れてみる。
おぉ!ちゃんと対応している。
設定ではコメント側も対応できるみたいだし、かなり良いかも!
って事でとりあえず、今回はPS Disable Auto Formattingって事で決定!
最後に両プラグイン作者に感謝です。
テーマを変更してみた。
まずは概観を変えてみよう! と言うことでテーマを探した。
テーマはダッシュボード(Wordpressの管理画面)から検索も出来るのだが、
今回のテーマはGoogleで検索してみた。
(「WordPress テンプレート」などで大量に見つかる)
今回はその中から「WPCLASSIC」というサイトから探し出した。
テーマの変更方法
- テーマをダウンロード
- テーマを解凍(圧縮ファイルになっている事が多い)
- FTP起動。WPをインストールしたフォルダの中にある「wp-content/themes」の中にフォルダごと挙げる
- WPダッシュボードに入り、「外観」⇒「テーマ」に入る。
- 今回挙げたテーマ下にある「使用する」を押下。
で、変更終了。
テーマは自作することも可能だし、ゆくゆくは自作しようとは思う。
WordPressでブログを立ち上げてみた
記念すべき初投稿! ブログ暦0年!(HPは10年以上前に少しだけやっていた。)
しかも初めてなのに、いきなり独自アカウントまでとって有料サーバーを借りてしまった;;;
うーん・・・まぁ何とかなるでしょ。と言ってもマメな人間ではないので
更新頻度はかなり低くなると思う。(細々やっていきたいかなぁ。)
さて、まずはブログ立ち上げた経緯をとりあえず書いとこう。
元々、そんなにブログ自体に興味なかった。
一応職業はプログラマーなのだが、C+系業務アプリケーションの開発。
なのでWordPressのことどころか、
「PHP・・・聞いたことはあるけど・・・どんなのかは知らん!」・・・というレベル。
しかし去年、Web系開発に回される事になり環境は急変!
そこでブログツールであるWordPressの存在を初めて知る。
第一印象は 「自由度が高くて・・・おもしろそうだけど・・・用語よく判らん・・・ダッシュボード・・・何???」 という感じ。
で、自身の勉強って事で立ち上げてみました。
とは言え、どういう方向に進むのか見当もつかないし、
Wordpressにこだわるつもりもないので
ボチボチと気になったことをジャンル問わずに書ければ良いかなぁ?

