![](/img/trans.png)
[英]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.