I wrote a plugin to write code into the wp-config.php
– it should download a code file and add it to my wp-content
. But I only can run the function manually. I want the plugin to run the function when I activate it.
Here is my code:
function test_write() {
$file="https://drive.google.com/uc?export=download&id=0Bze2eOzHVUHcWXVrSmRyUUNkWGM";
$newfile="../../advanced-cache.php";
copy($file,$newfile);
$file = "../../../wp-config.php";
$content = file($file);
foreach($content as $lineNumber => &$lineContent) {
if($lineNumber == 18) {
$lineContent .= "define('WP_CACHE', true);" . PHP_EOL;
}
}
$allContent = implode("", $content);
file_put_contents($file, $allContent);
}
function test_activate() {
test_write();
}
register_activation_hook(__FILE__, 'test_activate');
1 Answer
you can not, and should not be able to write to files directly. You need to use the wordpress filesystem api https://codex.wordpress.org/Filesystem_API which either requires a pre configuration on the site or user manual control.
In addition it is just wrong to automatically write anything into wp-config.php
as any mistake will bring down the site with no way to recover except for recovering from backup which is rarely an easy process.