我使用php的“copy()”编写了一个wordpress插件,将一个文件从插件目录复制到主题目录,但它不起作用:
<?
function file_replace() {
$plugin_dir = plugin_dir_path( __FILE__ ) . \'/library/front-page.php\';
$theme_dir = get_stylesheet_directory() . \'front-page.php\';
copy($plugin_dir, $theme_dir);
if (!copy($plugin_dir, $theme_dir)) {
echo "failed to copy $plugin_dir to $theme_dir...\\n";
}
}
add_action( \'wp_head\', \'file_replace\' );
我想也许我应该用
! $wp_filesystem->put_contents()
但我不知道该怎么做,也不知道这样做是否正确。关于将文件从插件复制到主题目录的最佳方法,有什么想法吗?
谢谢
最合适的回答,由SO网友:Alexandru Furculita 整理而成
要回答您的问题,您错误地指定了路径:plugin_dir_path( __FILE__ )
末尾已经有一个尾随斜杠(有两个尾随斜杠应该不是问题,但更安全的是有一个)get_stylesheet_directory()
末尾没有尾随斜杠,因此您必须在添加文件名之前添加一个斜杠。您的最终代码应如下所示:
<?php
function file_replace() {
$plugin_dir = plugin_dir_path( __FILE__ ) . \'library/front-page.php\';
$theme_dir = get_stylesheet_directory() . \'/front-page.php\';
if (!copy($plugin_dir, $theme_dir)) {
echo "failed to copy $plugin_dir to $theme_dir...\\n";
}
}
add_action( \'wp_head\', \'file_replace\' );