问题描述
在提出问题之前,我想告诉你,我已经在 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.php
tothemename/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 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。