ワードプレスでファイルに上書きで書き込む、追加で書き込む方法(PHPコード)を解説いたします。

ワードプレスでファイル書き込みなどを取り扱うための関数wp_filesystem

一般的にファイルの書き込み等はPHPの関数file_put_contentsやfputsを使用しますが、ワードプレスではフックやフィルタを利用できる組み込み関数であるwp_filesystemの利用が推奨されています。

任意のファイルに上書き(全置換え)書き込みをしたい場合のコードは下記のようになります。

$filepath = "書き込みたいファイルのパス";
$towrite = "書き込みたい内容";
require_once(ABSPATH.'wp-admin/includes/file.php');
WP_Filesystem();
global $wp_filesystem;
if($wp_filesystem->put_contents($filepath, $towrite)!=false){
    //上書きによる書き込み成功
}

$wp_filesystemを利用するためにfile.php をインクルードして WP_Filesystem() で初期化し、$wp_filesystem->put_contents で上書き書き込みしています。
ファイルが存在しない場合生成されます。

任意のファイルに追加書き込みする場合は?

上記のコードはいったんファイルの内容を消去して指定した内容を上書きで書き込みます。追加で書き込みたい場合はファイルの内容を読み込んで追記して上書き書き込みする形になります。

$filepath = "書き込みたいファイルのパス";
$toadd = "追記したい内容";
require_once(ABSPATH.'wp-admin/includes/file.php');
WP_Filesystem();
global $wp_filesystem;
$towrite = $wp_filesystem->get_contents( $filepath ).$toadd; //現在のファイルの内容に追記したい内容を連結
if($wp_filesystem->put_contents($filepath, $towrite)!=false){
    //書き込み成功
}

このコードは$wp_filesystem->get_contents で現在のファイルの内容を読み取り、$toaddを追記して、それを$towrite に代入して最後にwp_filesystem->put_contentsでファイルに書き込んでいます。

このようなロジックにすることでファイルに追記することが可能です。

WordPress ワードプレスのテーマやプラグインの作成PHPコーディングのご依頼・ご相談はワードプレスドクターまでお気軽にお送りください