WordPress 技術系

var_dump結果をファイルに出力する

投稿日:2017年10月27日 更新日:

タイトルの自動生成をやろうと思った時に、
意図通りに処理が動かず、困っていた時にとても重宝したのが「var_dump」のファイル出力でした。

「var_dump」は変数の情報を画面(ブラウザ)に表示させる機能ですが、
今回は記事投稿時のモジュールやアクションに対してフックさせる処理のデバッグなので
「var_dump」をそのまま使用は難しかったのです。

なので、画面に表示させるのではなく、テキストに出力したらとても便利でしたのでご紹介します。

処理は単純で、コレでOKです。

 

ファイルはどこに出力される?

ファイルに出力するようにしたのはいいのですが、最初どこに出力された!?
ってなりました(笑)

探してみたら「/public_html/wp-admin」の直下に作成されてました。

何となく「wp-admin」に出力したくなかったので、ちょっと出力先を変更。

私は、作業中は基本的に「/wp-content/themes/stinger8/」ここを開いているので
そこを出力先に設定。

あ、ごらんのとおり、テーマはstinger8使わせて頂いてます(笑)

 

使用してみる

タイトルの自動生成の際に起きていたのが、「global $post」の$post->post_typeを見ようとしたときにエラーが出ていました。

その際に原因を調べた時のことを例にして試してみます。

 

 

とりあえず、タイトル生成の処理とか抜きで「$post」に何が入っているのかを見るために、
先ほど作成した関数「fdump()」に「$post」を渡してみます。

 

 

そして「新規追加」を押してみたところ、
その時点でdump.txtが生成されました。

 

 

中身を覗いてみると

 

「NULL」が入っています。

 

この時点で、まず分かったことが。
「title_save_pre」は「新規追加」を押した時点でも呼ばれるんですね。

そして、このタイミングで「$post」の値はNULL。

これだと、確かに↑の「$post->post_type」はエラーになりますね。

エラーの原因が分かってちょっとスッキリしました。

 

次に、公開ボタンを押したタイミングではどうなるか試してみます。

 

公開ボタンを押して「dump.txt」を開いてみます。

 

ちゃんと「$post」には情報が入ってますね!!

という具合で、fdumpを使用して色々調べながら作業を行いました♪

 

最後に

すみません。
なんだか、散らかった記事になってしまいました(笑)

PHPってフックをかまして処理を走らせることが多くて、
それらのデバッグ表示を全て画面(ブラウザ)に表示させて行うのは困難だと思います。

ですので、今回作った「fdump()」みたいなのを用意しておくと、
WordPressにおけるPHP開発のは捗るのではないでしょうか。

ということでまとめとさせていただきます。

ブログランキング・にほんブログ村へ
スポンサーリンク

-WordPress, 技術系
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

投稿時に自動でタームの追加

※ぱち系の記事ではありません。  私がレビューを投稿しやすいようにWordPressと奮闘する記事です。 以前記事にしたとおり、レビューのカスタム投稿を追加しました。 その中で「機種」「レビュアー」の …

レビュー投稿用のカスタム投稿をつくってみた

※ぱち系の記事ではありません。  私がレビューを投稿しやすいようにWordPressと奮闘する記事です。 ▼レビューを投稿するときに、固定のフォーマットで投稿できるようにしたい ・レビューする機種名 …

投稿時に自動でタイトルをつける

カスタム投稿で「レビューの投稿」を作ったのですが、 レビュー投稿時のオペレーションとしては、 ①機種を選ぶ ②レビュアーを指定 ③評価記事を書く ④投稿 のような流れで投稿をしたいのです。 レビューの …