問題描述
在提出問題之前,我想告訴你,我已經在 https://stackoverflow.com/questions/15025213/wordpress-woocommerce-template-file-overiding 中問了這個問題
我正在使用 WooCommerce 插件來開發一個網站。 WooCommerce 一切都很好。根據我的要求,我已經從 WooCommerce 儀錶板將我的主頁配置為商店基礎頁面,使我的主頁成為商店頁面。現在我的要求是放置一些應該從管理端上傳的圖像,並在圖像上顯示一些文字。對於該功能,我通過 Google 搜索,有些人建議我使用 WordPress Advanced Custom Fields 。我剛安裝好
現在我看到 WooCommerce 沒有使用我的自定義主題。它正在使用自己的自定義主題。由於我想使用 Advanced Custom Fields plugin 顯示圖像和文本,我真的需要我自己的自定義模板來使用圖像和文本的查詢。然後,我再次搜索 Google 的解決方案,並得到建議,將主題的 page.php 複製到 woocommerce.php 中,然後替換代碼:
<?php while ( have_posts() ) : the_post(); ?>
<?php get_template_part( 'content', 'page' ); ?>
<?php comments_template( '', true ); ?>
<?php endwhile; // end of the loop. ?>
同
<?php woocommerce_content(); ?>
我做到了,但我還沒有得到我的 custom fields from Advanced Custom Fields 。請幫助我任何建議和幫助將是可觀的。謝謝。
我的代碼顯示圖像和文本的高級自定義字段是這樣的:
<?php $product_tab_banner = get_field('product_tab_banner');
if($product_tab_banner): ?>
<?php var_dump($product_tab_banner); ?>
<div class="nt-highlighted-products">
<img src="<?php echo $product_tab_banner['url']; ?>" alt="<?php echo $product_tab_banner['alt']; ?>" width="<?php echo $product_tab_banner['sizes']['featured_product-width'];?>" height="<?php echo $product_tab_banner['sizes']['featured_product-height'];?>" title="<?php echo $product_tab_banner['title']; ?>" />
</div>
<?php endif; ?>
我正在使用 WordPress TwentyEleven 主題。
最佳解決辦法
通過你的問題,我想告訴你,woocommerce 不會使用你的自定義模板。它將使用自己的模板。當你想使用 wordpress advanced custom fields plugin 我想告訴你,該功能只適用於頁面和帖子。所以 woocommerce 不會允許使用自己的自定義模板,不能使用高級自定義字段的功能。
現在只做一些不同的事情。只需製作自己的自定義模板,就可以顯示您的產品。然後只需到站點 http://docs.woothemes.com/document/woocommerce-shortcodes/在這裏您可以看到 woocommerce 的 shortcodes 。您可以通過自己的定製輕鬆顯示幾乎所有的產品。現在使用這些 shortcodes 來顯示產品。在這裏,您已經實現了 woocommerce 正在使用您自己的自定義模板。現在,因為它是您自己的模板,您可以輕鬆地使用高級自定義字段。那麼清楚嗎如果有什麼事情你不明白,然後回覆我。希望這將有助於您。
次佳解決辦法
我不太確定我是否正確地瞭解你的問題,但是我試圖複製它。
首先,考慮這部分 WooCommerce documentation:
If you want to edit one of these templates simply copy it into a directory within your theme named
/woocommerce, keeping the same file structure, e.g. move/templates/cart/cart.phptothemename/woocommerce/cart/cart.php. The copied file will now override the WooCommerce default template file.
二,這是複製步驟:
-
使用 WP 3.5.1,TwentyEleven 1.5,WooCommerce 1.6.6 和 AdvancedCustomFields 4.0.0
-
將頁面”Shop” 設置為閲讀設置 (
/wp-admin/options-reading.php) 中的靜態首頁 -
設置包含圖像字段 (
product_tab_banner) 的 ACF 字段組,返回值為”Image Object”,並顯示在後置類型”Product” 中
解:
-
創建以下文件夾:
/wp-content/twentyeleven/woocommerce/ -
複製文件:
/wp-content/plugins/woocommerce/templates/content-product.php到這個新創建的文件夾 -
將您的代碼放在
content-product.php的這個副本中
$product_tab_banner = get_field('product_tab_banner');
if($product_tab_banner): ?>
<div class="nt-highlighted-products">
<img src="<?php echo $product_tab_banner['url']; ?>"
alt="<?php echo $product_tab_banner['alt']; ?>"
width="<?php echo $product_tab_banner['sizes']['featured_product-width'];?>"
height="<?php echo $product_tab_banner['sizes']['featured_product-height'];?>"
title="<?php echo $product_tab_banner['title']; ?>" />
</div>
<?php endif; ?>
以下是產品頁面:
而這裏的網站結果如下:
如果要自定義”Shop” 頁面,請將文件/wp-content/plugins/woocommerce/templates/archive-product.php 複製到主題的/woocommerce/文件夾中。
參考文獻
注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。

