0

我正在开发一个主题,出于某种原因,我需要将面包屑的默认位置(也适用于许多其他事情)移动到 woocommerce 主题上。然后我意识到在我的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 的任何内容,而不仅仅是面包屑,还包括任何图片、评级、标题、按钮、侧边栏等等。我在想的是为什么 woocommerce 模板不带有更深层次的代码。我的意思是,为什么没有这样的 single-content-loop.php 模板,您可以在其中以简单的方式更改事物的顺序、标题、类别、内容、图像等,而不是挂钩到函数中?

4

1 回答 1

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 的新手!

于 2013-11-17T22:32:57.313 回答