wp-filesystem-api
Installation
SKILL.md
WordPress Filesystem API
WP abstracts filesystem access because on shared hosts the web user often can't write plugin/theme/core paths directly — FTP/SSH credentials are required. WP_Filesystem picks the right transport (direct when PHP can write as the file owner, otherwise ssh2 / ftpext / ftpsockets) and exposes a uniform method set. Plugins that call file_put_contents() directly outside writable uploads fail on those hosts; plugins that use WP_Filesystem work across more hosting setups.
When to use this skill
Trigger when ANY of the following is true:
- A plugin needs to write files outside
wp-content/uploads/— generated CSS, bundled asset extraction, log files, exported reports, cache, mu-plugins install. - Code references
WP_Filesystem,request_filesystem_credentials,get_filesystem_method,FS_METHOD,FS_CHMOD_FILE,FS_CHMOD_DIR,$wp_filesystem,WP_Filesystem_Direct,WP_Filesystem_SSH2,WP_Filesystem_FTPext,WP_Filesystem_ftpsockets. - Code uses
file_put_contents/fwrite/fopen/unlink/mkdir/rmdirfor plugin-owned files outside uploads. - The user reports: "works on my localhost, fails on the shared host", "the file doesn't write", "users see an FTP prompt out of nowhere".
The bootstrap — five lines, in this exact order
// 1. Load the API. NOT autoloaded.
require_once ABSPATH . 'wp-admin/includes/file.php';