[英]How can i override plugin class function in wordpress functions.php?
[英]Can I override a PHP Function that is called in another file/plugin?
首先,我已阅读“ 覆盖默认的php函数 ”,并且名称空间无法满足我的需求。 我也研究了PHP.net的override_function(),但这也无法帮助我解决问题。
我正在使用名为Jigoshop的Wordpress插件作为电子商务解决方案,但在某些情况下,我无法删除将自己的结构应用于“单个产品”页面所需的操作。 我不想自己编辑插件文件,因为插件更新可能会否定并删除我以前的更改。 本质上,我想通过我的/themes/mytheme/functions.php
文件控制输出。
有人遇到过这个问题,因为出于同样的“更新”原因,原始功能包含在我不想编辑的文件中吗?
谢谢
编辑(2012-11-21):我在functions.php
文件中有一个自定义函数,如下所示:
function prepare_jigoshop_wrappers() {
remove_action('jigoshop_before_main_content', 'jigoshop_breadcrumb', 20);
add_action('jigoshop_before_main_content', 'custom_jigoshop_breadcrumb', 10);
}
add_action('wp_head', 'prepare_jigoshop_wrappers');
从本质上讲,这使我可以应用自己的结构和配置。 对于其他默认功能,要困难一些。 例如,“数量选择器”,“添加到购物车”按钮和“库存状况”全部包含在jigoshop_template_actions.php
文件中名为jigoshop_template_single_summary
的函数中,该函数调用jigoshop_template_single_summary
, _title
, _price
, _excerpt
, _meta
, _sharing
和_add_to_cart
。
这些显示的顺序,我似乎无法更改。 因此,我想从本质上重新定义function jigoshop_template_single_summary() {...}
您可能需要研究PECL扩展名。 它可以满足您的需要,PHP.NET上的文档。
runkit_function_redefine
(PECL Runkit> = 0.7.0)
我不太了解这个插件,但是可能这是您需要使用Jigoshop进行主题化的功能
重写php中的某些功能(也是共同点。)从来都不是一个好主意。 如果插件没有提供挂钩功能的方法,有时最好使用替代插件或重写核心代码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.