我正在开发一个主题,出于某种原因,我需要在woocommerce主题上移动breadcrubms(也适用于许多其他东西)的默认位置。然后我意识到在我的functions.php上做了类似的事情:
function woocommerce_remove_breadcrumb(){
remove_action( 'woocommerce_before_main_content', 'woocommerce_breadcrumb', 20);
}
add_action('woocommerce_before_main_content', 'woocommerce_remove_breadcrumb');
function woocommerce_custom_breadcrumb(){
woocommerce_breadcrumb();
}
add_action( 'woo_custom_breadcrumb', 'woocommerce_custom_breadcrumb' );
然后在任何模板文件上输出面包屑,只需:
<? do_action('woo_custom_breadcrumb'); ?>
并且有效。我的问题不止于此。对于像这样的事情,这是正确的方法吗?我的意思是任何超过woocommerce,不仅仅是面包屑,任何pice,评级,标题,按钮,侧边栏等等。 我在想的是为什么woocommerce模板没有更深入的代码。我的意思是,为什么没有这样的单内容loop.php模板,您可以轻松地改变事物,标题,类别,内容,图像等的顺序而不是挂钩到函数中?
答案 0 :(得分:0)
我认为这是明确调用面包屑的可接受方式。有时调用特定函数比删除它周围的所有内容更容易!
至于改变事物的顺序和进入高级定制;没有单个文件,但有许多文件一起工作。在主题根目录中创建一个名为“woocommerce”的文件夹,并复制以下文件以进行安全覆盖:
<强> woocommerce / woocommerce-hooks.php 强>:
这是你的钩子,包括你在主题functions.php中重写的那些。您可以在此处尝试删除和重新定位产品页面上的某些元素。搜索“补充工具栏”,您将看到“woocommerce_sidebar”操作添加到其引用的功能的位置...
<强> woocommerce / woocommerce-的template.php 强>:
以下是模板文件中用于根据条件语句输出内容的函数。例如,搜索“单个产品”系列,您可以看到哪些模板文件用于哪些功能。例如'woocommerce_template_single_title'使用'single-product / title.php' - 如果您复制此文件夹和文件,您可以对标题部分进行非常具体的编辑
在这两个文件及其附带的引用(如title.php)之间,我相信你可以做你描述的事情。让我知道它是如何工作的!我也是woocommerce的新手!