2021-11-18に投稿

WordPress で処理の結果をログに出力したい

WordPress のアクションフックで処理している内容を覗き見たいと考えました。

ただし、記事を公開した際の publish_post で処理される内容を見たい……というようなケースでは、画面出力するとブロックエディタの画面に出力されることになり、表示が大幅に崩れたりして悪影響が出ることが想定されます。

そこで、ログファイルにこっそり吐き出す方法を採ることにしました。

コード

<?php

ob_start();
var_dump($post);
var_dump($term);
$result = ob_get_clean();
$log_message = sprintf("%s:%s\n", date_i18n('Y-m-d H:i:s'), htmlspecialchars($result, ENT_QUOTES, 'UTF-8'));
error_log($log_message, 3, __DIR__ . '/debug_log.txt');

サンプルですが、上述のようなイメージ。 var_dump() を文字列として出力するためのバッファリングを使用しつつ、その文字列に日付等を付与してログの出力のような体裁を整えることにしました。

そしてその内容をPHP標準の error_log()関数 でファイルに出力します。

なお、このコードを使用するに当たり WordPress の wp-config.php で次のようにデバッグモードとデバッグのログ出力を有効にしておきます。

//define('WP_DEBUG', false);
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);

これでファイルに変数の中身が出力されるので確認できます。

参考

Originally published at labor.ewigleere.net
ツイッターでシェア
みんなに共有、忘れないようにメモ

arm-band

フロントエンド・バックエンド・サーバエンジニア。LAMPやNodeからWP、Gulpを使ってejs,Scss,JSのコーディングまで一通り。たまにRasPiで遊んだり、趣味で開発したり。

Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。

また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!

有料記事を販売できるようになりました!

こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?

コメント