簡體   English   中英

覆蓋WordPress中的函數

[英]Override a function in WordPress

我有一個插件,因為我需要更改一些文本,但是這個函數沒有鈎子可以使用。

通常使用remove_action()remove_filter()來覆蓋該函數。 對於這兩個函數,我們需要覆蓋過濾器名稱。 但是這個插件功能不會添加任何過濾器。

現在我需要覆蓋這個功能。

例如

插件中的Plugin.php

function plugin(){
    echo 'hello';
    echo 'welcome you';
}

主題中的Function.php

我想在plugin.php中使用函數plugin()

function theme_plugin(){
    echo 'hello';
    echo 'You are welcome';
}

plugin()沒有add_action

如何覆蓋plugin()theme_plugin()

看看這里重新定義PHP函數? ,你不能覆蓋PHP功能或超載它。 你必須找到解決問題的另一種方法。

問候,

如果我是對的,你可以給我們這個鏈接: http//sltaylor.co.uk/blog/customizing-new-user-email-pluggable-function/

****編輯**

我對wordpress沒有多少經驗。 但是這里有人要求相同: 在WordPress中覆蓋插件中的主題功能

明確的答案是:

除非該函數被覆蓋,否則。 這是基本的PHP。 您無法重新定義函數。 如果你嘗試,你會得到一個致命的錯誤。

編寫WordPress的部分內容將被覆蓋。 看看/wp-includes/pluggable.php。 其中的每個函數都包含在if(!function_exists(...))條件中。 除非你的主題做同樣的事情,有些功能也是如此,否則你無法覆蓋。

四處尋找可能對您有所幫助的過濾器。

看看你的代碼,你應該能夠解開它。 只要確保將鈎子鈎得足夠晚。 這不是一個好的解決方案,但是因為你破壞了主題功能,而且還必須知道主題正在使用的所有鈎子函數的名稱。

是否存在$ fragment中的內容,或$ _POST或$ _GET或其他任何東西,您可以使用它來有條件地運行代碼,剩下的就是其余部分。

無論如何,Wordpress是開源的,所以你可以自己更改代碼嗎? 為什么要改變插件?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM