我想在用戶輸入時有條件地使用文件。我在我的孩子主題中使用WooCommerce模板。當然,該文件(content-single-product.php
)是在兒童主題中自定義的。不過,我也希望給用戶一個選擇,如果他們想使用默認的WC文件。總之,我想有條件地使用那個用戶將選擇的文件。如何在WordPress中有條件地使用文件?
我正在使用PHP copy()
和unlink()
函數。我只想要你的專家意見,如果這是最好的解決方案,或者如果你有比我更好的建議。這裏是我的孩子主題中的功能。
/*...for copying the file from a child theme folder to the woocommerce folder...*/
function ac_wc_files_to_theme()
{
$theme_dir = get_stylesheet_directory() . '/woocommerce/files/content-single-product.php';
$theme_dir_file = get_stylesheet_directory() . '/woocommerce/content-single-product.php';
if (!copy($theme_dir, $theme_dir_file)) {
echo "failed to copy $theme_dir to $theme_dir_file...\n";
}
}
/*...for removing the file from a the woocommerce folder...*/
function ac_wc_delete_wc_file(){
$fileArray = array(
get_stylesheet_directory() . '/woocommerce/content-single-product.php'
);
foreach ($fileArray as $value) {
if (file_exists($value)) {
unlink($value);
} else {
echo 'file not found';
}
}
}
/*...calling the options from the theme settings area....*/
if (get_option('ac_wc_default_single') == 1) {
add_action('init', 'ac_wc_delete_wc_file');
remove_action('init', 'ac_wc_files_to_theme');
}
else {
add_action('init', 'ac_wc_files_to_theme');
remove_action('init', 'ac_wc_delete_wc_file');
}
該代碼工作正常。只是我需要你的看法,如果這樣做。謝謝
而不是複製的文件的時候,我想你也許能夠通過過濾['woocommerce_locate_template']實現自己的主題和模板woocommerce版本之間切換的目標(https://github.com/woothemes/ woocommerce /斑點/ 927941e2cad28903a2d0bd03ce52a8809525f4e3 /包括/ WC-芯的functions.php#L256)。 – helgatheviking
謝謝。我嘗試過,但這似乎並不奏效。你能建議嗎? 功能ac_wc_override_single_product($模板,$ TEMPLATE_NAME,$ template_path){ 如果($ TEMPLATE_NAME == '內容單product.php'){$ = template_path get_stylesheet_directory()。 '/woocommerce/files/content-single-product-1.php'; $ template = $ template_path; } return $ template; } add_filter('woocommerce_locate_template','ac_wc_override_single_product',20,3); – Ayanize
將來,你可以編輯你的問題來添加新的代碼嗎?評論中的代碼非常難以閱讀。 – helgatheviking