地味に困るフックありますよね。
フックが何かとかそういうのはどうでも良い問題です。
システムの工程を追加するか工程自体を変更するもんだと思ってください。
で例えば、工程を追加するにしても、
この管理画面の投稿編集画面の公開押したりした後に工程追加した場合、
DBへの追加処理が行っちゃった後だから、デバックが出来んわけです。
でも、なんか無駄なデータが入ってたりして、ムキーってなる訳です。
ちなみにこの場合はsave_postっていうフックですね。
今日はそういう段になった時に、どう対処するかのご紹介です。
INDEX
フックについて1
結局そこからです。でも詳しくは説明できません。
だって良くわかんないんですもの。分からんもんは分からんのです。
フックってのは2種類あります。
アクションフックとフィルターフック。
言葉については深く考えないでください。ありのままを感じてください。
アクションフック
アクションフックってのは、貴方がペーペーの社員だとして、
馬車馬の様に仕事を捌いている様を想像してください。
17時半が近づいてきました。さて、帰ろうと、貴方は帰るために荷物を片付けます。
そうした時に上司が貴方にこう言ったとします。
常務「片付けたらさ、俺のマグカップ洗っといてくれない?」
貴方「は?ふざけんな」と思いながらしぶしぶ貴方はマグカップを洗います。
流れを見てみると、
「荷物を片付ける作業」の後に「マグカップを洗う」が追加されましたね。
特定の作業の後に、作業を追加するのをアクションフックといいます。
フィルターフック
特定の作業の後に、作業を追加するのをアクションフックといいます。
フィルターフックだと、やりとりがちょっと変わります。
常務「片付けてるとこ悪いんだけど、これ要らないから持って帰ってくれない?」
貴方「は?ふざけんな」と思いながら今朝叩き付けた辞表をかばんにしまって帰ります。
流れを見てみると、
「荷物を片付ける作業」中に「辞表をしまう」が追加されましたね。
特定の作業中に、作業を追加するのをフィルターフックといいます。
アクションフック紹介4
アクションフックをいくつか紹介します。
[init] wpのヘッダがー読み込まれる前に処理を追加できます。ちなみにアクションフックはこう書きます。
add_action('init', 'nantyara'); function nantyara() { //処理 }[save_post] 名前の通り投稿処理が走った場合に実行されます。
[wp_head] テンプレートがwp_head関数を呼ぶ前に実行する
[wp_footer] ↑のフッタバージョン
他にも超色々あるので気になる人はCODEX見てください。
本題
save_postを使った時にdumpがしにくいので
調べてみたら、logを取るプログラムを書く方法と、
mysqlにログを入れる方法と、mysqlの設定を変えて
mysql自体のログを残すという方法がありました。
僕はどれも面倒なので、セッションに残すことにしました。
add_action('init', 'nantyara'); function nantyara() { session_start(); } add_action('save_post','moge'); function moge() { $_SESSION["post"] = $_POST; }
とでもしておけば大丈夫です。
フックって便利ですね。ちなみにフィルターフックは使ったことないので、
サンプルコードはなしです!