有兩種方法來達到這個目的,它只是取決於你是否想要編輯single-product.php
或content-single-product.php
。兩者都會讓你達到相同的最終結果。
要做到前者,你可以使用默認的WordPress的功能,並通過template_include
add_filter('template_include', 'so_29984159_custom_category_template');
function so_29984159_custom_category_template($template){
if (is_single() && get_post_type() == 'product' && has_term('custom_category', 'product_cat')) {
$template = locate_template('single-product-custom.php');
}
return $template;
}
給定條件下過濾模板,或者,如果你寧願創建一個自定義content-product.php
模板的一部分,你可以使用WooCommerce的wc_get_template_part
這以幾乎相同的方式工作。 從技術上講,我認爲你可以使用相同的條件邏輯,但我在這裏調整它來指出WooCommerce在過濾器中提供的變量。
add_filter('wc_get_template_part', 'so_29984159_custom_content_template_part', 10, 3);
function so_29984159_custom_content_template_part($template, $slug, $name){
if ($slug == 'content' && $name == 'product' && has_term('custom_category', 'product_cat')) {
$template = locate_template('content-product-custom.php');
}
return $template;
}
在這兩種情況下,single-product-custom.php
或content-product-custom.php
將是你的主題的根文件夾。要將它們放在其他地方,只需更改locate_template()
參數中的路徑。
請參閱https://stackoverflow.com/help/how-to-ask。 – skyline75489
查詢網址:https://wordpress.org/support/topic/product-page-11它可能會幫助你 –
感謝您的回答,我試着用您的解決方案替換產品類別ID中的term_id,並將「single-product-seperateCategory」通過「單品定製」(我的類別名稱和PHP文件複製到主題文件夾中)但它沒有爲我工作 – Ben