Скопируйте файл из плагина в каталог моей темы
Я закодировал плагин wordpress с помощью 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()
, но я не совсем уверен, как это сделать или будет ли это вообще правильным решением. Есть идеи о том, как лучше всего скопировать файл из плагина в каталог темы?
Спасибо
1 answers
Чтобы ответить на ваш вопрос, вы неправильно указали пути: 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' );