メシのタネ

Webプログラミング 備忘録

  • DOMをPHPで操作できたらいいよね

    そうだよね。そう思うよね。JavaScriptでやると、画面がガタついたりするもんね。そうならないようにする方法もあるかもしれないけど、僕はできませんので、サーバー側でなんとかできたらええなぁと思って挑戦したけど、できませんでしたよ。PHP標準でHTMLをDOMにできるらしい今、技[...]

    続きを読む
  • 設計書ってなんで書くの?

    設計書をなぜ書くのかから始めてかれこれ3年近くこの禅問答をやっているわけですが、いまだに答えは出ません。ただ、その禅問答をやる中で設計書に対する取り組み方は大きく変わったので、その一部でも書いていきたい。基本設計はとにもかくにも必要だと思う設計書はいらぬ!という話をよく聞くし、自分[...]

    続きを読む
  • 書ききってやる。

    久々に書いてみる。久々に文章を書くということをやってみようと思う。伝える作業を観察したいと思ったからそうしたいと考えた。情緒的な文章は基本的にゴミ箱にぽいしてきましたが、情緒的なのも自分だと思う。「文章をかくという作業は、とりもなおさず自分と自分をとりまく事物との距離を確認すること[...]

    続きを読む
  • 普通の会社で2年普通に働いて思う事

    えらい寒くなりました。文句言いながらも現職を続けて2017年12月1日にめでたく2年がたちました。分かりやすいが乱暴に言えばITドカタと呼ばれる業界に入って案件のヒエラルキーの無慈悲さを痛感しながらも、それでもしょうがないと頑張る人たちに心を打たれながら「じゃあ俺も」と頑張れない自分に挫折して、とあ[...]

    続きを読む
  • jQueryUiのDatepicker利用時にminDate設定するとバグる件

    題名の通りなんですが、DatepickerでminDate使うとバグります。また後でキャプチャ見て貰いますけど、灰色の部分が、minDateで設定した日付が反復して出るようになるんですね。こういうの気が付かない人がいるかも知れませんが、ChoromeでminDate設定してる人は気にしてみてくだ[...]

    続きを読む

【WordPress】フック時のデバックについて save_post

地味に困るフックありますよね。
フックが何かとかそういうのはどうでも良い問題です。
システムの工程を追加するか工程自体を変更するもんだと思ってください。

で例えば、工程を追加するにしても、
この管理画面の投稿編集画面の公開押したりした後に工程追加した場合、
DBへの追加処理が行っちゃった後だから、デバックが出来んわけです。
でも、なんか無駄なデータが入ってたりして、ムキーってなる訳です。
ちなみにこの場合はsave_postっていうフックですね。

今日はそういう段になった時に、どう対処するかのご紹介です。

フックについて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;
}

とでもしておけば大丈夫です。
フックって便利ですね。ちなみにフィルターフックは使ったことないので、

サンプルコードはなしです!

関連記事

コメントをお待ちしております