WordPressのテーマはFirePHPでハックすれば
良かったのか
@tanakahisateru
自己紹介
タナカヒサテル@tanakahisateru
PHPのフレームワークを開発しています
Pinoco https://github.com/tanakahisateru/pinoco
WordPress 初心者です
「テーマのカスタマイズなんて、基本HTMLとCSSじゃねーの?」
え!?
ちょ! まじか
<?php のほうが多かった...
しかもDOM構造がズタ切り
→ インクルード・スパゲッティ地獄orz
ロジックとレイアウトが混在APIがぜんぶグローバル関数だと!?
(オブジェクト指向知ってる人は逆に難しい)
あんまり言うとそろそろ怒られそうだな...
まじで WordPress 初心者です
echo / var_dump で調査に挑んだ<?php
var_dump(get_the_category());
?>
これが
こうなる
いけるか!?
けど書く場所によっては
本文ブロックとヘッダの狭間で
ひどいや、IE6にだってこんな仕打ちされたことないのに
もっとひどい場合
?
拡大
僕はただ head.php でタイトルを変えたかっただけなんだ
俺はもう普通のWeb制作に付いていけないのか、このまま負けるのか...
お稲荷さまお助け下さい
僕と契約してプログラマーに
なってよ!
JSerに大人気 Firebug
虫きもいいうな
Firebug 拡張 FirePHP
インストールFirefox::Addons でさくっと
PEAR
$ pear channel-discover pear.firephp.org
$ pear install firephp/FirePHPCore
PEARぺぺぺぺぁ〜?
(おっと、ここはPHP初心者勉強会だった)
これでもいいよ
FirePHPCoreをWPの中にコピー
wp-config.php を編集
ユーザ設定ファイルだからアップデートのとき上書きされる心配ないよね、ないよね。
wp-config.php の最初で/**
* FirePHP setup
*/
require_once("FirePHPCore/FirePHP.class.php");
require_once("FirePHPCore/fb.php");
ob_start(); // バグったときのおまじない
さっきのvar_dumpを
var_dump(get_the_category());
↓FB::log(get_the_category());
これだけ。ほんとこれだけ。
まるで JS の console.log みたいに
もっとすごいこと
ここクリック
見える! 見えるぞ!
さらにすごい機能
FB::trace('content-single');
適当な目印になる名前
関数呼び出し履歴どーんス タ ッ ク ト レ ー ス
これでぜんぶわかる!俺も WordPress と戦えそうだ
カタカタカタカタ......
「あ、途中でいいから公開してよ」
「え! いまデバッグ用のFB::logいっぱい入れてるとこなのに...」
主電源を切ろう/**
* FirePHP setup
*/
require_once("FirePHPCore/FirePHP.class.php");
require_once("FirePHPCore/fb.php");
ob_start(); // バグったときのおまじない
FB::setEnabled(false); 電源
FB::logそのまま放置しててもOK
え、なんもしてませんよ、まっさらですよ
言うよね、みんなそう言うんだよね。
「プラグインでどうにか できませんか」
WPユーザ Aさん
プラグインだと...(1)
これはエンジンの情報全部出ちゃうんだね。
プラグインだと...(2)
これはプラグイン単品で同じようなことができる。ただし、● プラグインをロードする処理より前をデバッグできない。● マスタースイッチを切る箇所がない。● アンインストールするとFB::log が全部エラーになる。
●require_once って2行書くだけ。●プラグイン入れていろいろハマる。
どっちがいい?
「プラグインでどうにか できませんか」
WPユーザ Aさん
結論コードを書いたほうが幸せになるよ。
プログラム言語のほうが難しいなんて迷信は今日から捨てよう。
ありがとうございました。
おまけ
偶然見つけたフリーのイラストが完璧すぎて怖い。
Fox
PEAR
Apple
Bug
PHP