激活插件后无法运行代码

时间:2017-03-28 作者:S.Y

我编写了一个插件,将代码写入wp-config.php – 它应该下载一个代码文件并将其添加到wp-content. 但我只能手动运行该函数。我希望插件在我激活它时运行该功能。

这是我的代码:

    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 个回复
SO网友:Mark Kaplun

您不能,也不应该能够直接写入文件。您需要使用wordpress文件系统apihttps://codex.wordpress.org/Filesystem_API 这需要在站点上进行预配置或用户手动控制。

此外,自动将任何内容写入wp-config.php 因为任何错误都会导致站点宕机,除了从备份中恢复之外,没有其他恢复方法,而备份很少是一个简单的过程。

相关推荐

无法在模板函数.php中使用IS_HOME

我试图在标题中加载一个滑块,但只在主页上加载。如果有帮助的话,我正在使用Ultralight模板。我正在尝试(在template functions.php中)执行以下操作:<?php if ( is_page( \'home\' ) ) : ?> dynamic_sidebar( \'Homepage Widget\' ); <?php endif; ?> 但这行不通。现在,通过快速的google,我似乎需要将请