私のプラグインディレクトリからテーマディレクトリにファイルをコピーするためにphpの 'copy()'を使用してワードプレスプラグインをコーディングしましたが、うまくいきません:
<?
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()
を使うべきだと思いました、しかし私はそれをする方法が正確にはわからないか、あるいはそれが正しい方法でさえあるならば。プラグインからテーマディレクトリにファイルをコピーするための最良の方法に関するアイデアはありますか?
ありがとう
plugin_dir_path( __FILE__ )
の末尾にすでに末尾のスラッシュがあり(末尾に2つのスラッシュがあっても問題ありませんが、安全な方が1つあります)、最後に末尾のスラッシュは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' );