我已经开始学习如何使用WooCommerce创建模板,但遇到了一个小问题。例如,在Woocommerce插件的php文件content-single-
product.php中,我有这样的字符串:
<?php
/**
* woocommerce_single_product_summary hook.
*
* @hooked woocommerce_template_single_title - 5
* @hooked woocommerce_template_single_rating - 10
* @hooked woocommerce_template_single_price - 10
* @hooked woocommerce_template_single_excerpt - 20
* @hooked woocommerce_template_single_add_to_cart - 30
* @hooked woocommerce_template_single_meta - 40
* @hooked woocommerce_template_single_sharing - 50
*/
do_action( 'woocommerce_single_product_summary' );
?>
例如,当我要编辑此内容(删除一些字段并更改结构)时,我尝试擦除字符串:
do_action(’woocommerce_single_product_summary’);
然后写成这样:
<?php
/**
* woocommerce_single_product_summary hook.
*
* @hooked woocommerce_template_single_title - 5
* @hooked woocommerce_template_single_rating - 10
* @hooked woocommerce_template_single_price - 10
* @hooked woocommerce_template_single_excerpt - 20
* @hooked woocommerce_template_single_add_to_cart - 30
* @hooked woocommerce_template_single_meta - 40
* @hooked woocommerce_template_single_sharing - 50
*/
//do_action( 'woocommerce_single_product_summary' );
do_action('woocommerce_template_single_title');
?>
你能告诉我为什么这不起作用吗?
什么是正确的编辑方式?
谢谢
首先在 下面的参考中, 您将找到如何通过主题
正确覆盖woocommerce模板
(避免编辑插件模板) 。
在您的第一个代码段中,如您对 woocommerce_single_product_summary
hook所看到的,您必须使用WordPress函数对 @hooked
位于此 hook位置的 所有不同模板进行排序
do_action()
:
do_action( 'woocommerce_single_product_summary' );
因此,在您的自定义代码(第2的代码片段)你刚更换过 钩 ,用 钩模板蛞蝓 _(即 不是 一个钩)_和将 不 工作为切入点
行动挂钩 。请参阅此答案底部的参考,以获取WooCommerce操作列表并过滤现有的挂钩 …
后果:* 如果您将钩子替换为模板slug ,则注释列表代码中所有其他钩子模板(以 @hooked 开头)将丢失。 *
说明 (如何) :
如何-具体示例:
您要 自定义
woocommerce_template_single_title
hook中的
woocommerce_single_product_summary
钩子 模板 。THE HOOK NAME: woocommerce_single_product_summary hook. THE TEMPLATES HOOKED (+priority order number) => corresponding template
file name:
— woocommerce_template_single_title (5) => single-
product/title.php
— woocommerce_template_single_rating (10) => single-
product/rating.php
— woocommerce_template_single_price (10) => single-
product/price.php
— woocommerce_template_single_excerpt (20) => single-product/short-
description.php
— woocommerce_template_single_add_to_cart(30) => single-product/add-to-
cart/ (6 files depending on product type)
— woocommerce_template_single_meta (40) => single-product/review-
meta.php
— woocommerce_template_single_sharing - (50) => single-
product/share.php然后,您将需要 编辑 位于 (子文件夹)中 的相应
woocommerce_single_product_summary
钩子
。。。一旦我们了解了模板结构文件和该模板中的钩子,最后并没有那么复杂。title.php
single-product
__该 优先数 ,给出了钩模板的顺序:先中更小,在年底大…
其他方式:
您还可以使用所有现有模板的挂钩 来针对非常特定的更改或自定义,并将自定义功能置于
function.php
活动子主题(或主题)的文件或任何插件文件中。
使用add_action()
WordPress函数的示例:
// define the woocommerce_single_product_summary callback function
function my_custom_action() {
echo '<p>This is my custom action function</p>';
};
add_action( 'woocommerce_single_product_summary', 'my_custom_action', 15 );
这个函数的优先级序号
15
,并显示 “这是我的自定义操作功能” 字符串文本,之间product price
和
product short description
…此挂钩函数的此挂钩函数的可选参数:
-模板slug(字符串)。
-优先级(int)。
问题内容: 如果要覆盖django中应用程序随附的模板(在app / templates / app /中),请在另一个目录中创建相同名称的模板,模板加载器会在应用程序的模板目录之前检查该模板。如果您只想覆盖模板的某些块,则还必须复制整个模板广告,更改该块,这实际上不是很干。 有人知道一种方法来覆盖原始模板,同时扩展它,以便您只需要覆盖要更改的特定块吗?(这样做是在不更改模板名称的情况下进行的,因
问题内容: 我正在写入txt文件,但是每次我执行写入过程时,它都会覆盖那里已经写入的内容。如何更改代码,使程序的这一部分不会覆盖已经存在的内容? 问题答案: 将true作为第二个参数传递给FileWriter以打开“附加”模式。
我写一些模块为PrestaShop 1.7。但是我有一个新的钩子的问题。 我注册hook,然后给他写方法。 有人知道我的代码哪里出错了,我在1.6中使用了这个功能,一切都很好,但在1.7中却没有。如果我的问题含糊不清,我很抱歉,但我的研究以失败告终。 感谢所有的帮助!
问题内容: 我是django的新人。 我想创建一个自定义窗口小部件。 forms.py: widget.py: project / widgets / filter.html: 但是它不会呈现新模板,而是仍然呈现旧方法。 你能给我一些提示吗? 问题答案: Django版本 <1.11: 小部件必须实现该方法才能呈现不同的模板: Django 1.11版: 在渲染器的文档中,我们可以找到以下内容:
问题内容: 我有一个.net Core Web Api,其配置文件位于名为Config的文件夹下。我从中创建了图像和一个容器,并且使用终端可以正确看到该容器中包含文件夹和配置文件。 我的问题是,到目前为止,按照要求,我找不到找到将相同的容器安装/绑定Config文件夹绑定到物理路径的容器的方法: 1)将Config文件夹挂载到特定的主机位置 2)在创建容器时,Config文件夹应填充映像中的文件
问题内容: 假设我在课堂上说两种方法 和 那是什么感觉 重载还是重载? 问题答案: 重载是指两个或多个具有相同名称但参数不同的方法,就像您的示例一样。重载是从接口或抽象类实现一个方法的,因此超类中的方法具有实现,而子类中的方法具有不同的实现,它们仍然具有相同的方法名称和参数。