[英]WordPress do_action and add_action; running arguments in add_action call
我目前正在為WordPress編寫插件,但對add_action
和do_action
函數感到do_action
。 我認為我可能會嘗試在錯誤的環境中使用它們,如果是這樣的話,有人可以向我指出正確的方向嗎?
我從討厭WordPress到熱愛它,我從沒想過要寫一個wordpress插件,但是現在我掌握了很多東西,它與普通的PHP開發並沒有什么不同。
無論如何,如果我要在插件中包含以下代碼:
class aCoolPlugin {
function __construct() {
add_action('clear_auth_cookie', array( $this, 'aCoolFunction' ), 10, 2 );
}
function aCoolFunction( $arg1, $arg2 ) {
// Do something with the arguments
}
}
我將如何實際運行aCoolFunction
函數? 現在,我嘗試了以下方法:
do_action( 'init', "arg1 value", "arg2 value" );
但是,在嘗試運行該代碼之前,我意識到:
init
動作,並且; 因此,我從中學到了:
add_action
來掛鈎WP的現有功能 do_action
是為新的鈎子保留的,真的不能想到在有用的情況下應該先調用鈎子,然后再調用鈎子的情況嗎? 因此,我現在的問題是:如何將變量傳遞到add_action
代碼中? 食品法典委員會沒有對論點說什么, 那么我有什么選擇呢? 還是我的邏輯和理解有缺陷?
總體目標是什么? 目標是讓一個帶有設置參數的函數在每次調用特定的鈎子時運行,並且原始鈎子的調用不早於應調用的鈎子
add操作不接受任何新變量,也不會將任何變量返回給運行它的函數。 但是您可以訪問傳遞給函數的變量。
function custom_function($arga){
echo $arga;
}
add_action ('callname', 'custom_function', 10, 1);// 1= number of arguments accepted, use 2 for 2 etc...must add variables to do action call
//sometime later in the code
do_action('callname', $arga);
如果要注入變量,則必須考慮一些基礎知識。 如果要訪問未傳遞的函數中的變量,則有兩個選項:
您很少會為wordpress掛鈎調用do_action(請參閱下面的注釋),但是最終可能會遇到以下情況:您正在編寫模板FILE(在插件之后再在主題之后運行),並且希望將邏輯保留在插件中可以將do_action()
添加到模板文件中,並且插件中設置的操作將在此時運行。 或類似地,如果您設計了一個可以在主題中修改的插件,則可以在被調用的函數中向晚期wp掛鈎添加操作,您可以在主題中為自己的自定義掛鈎和掛鈎函數調用do_action 。 大量的可能性。
無論您早早調用WP掛鈎的邏輯是什么,如果您不在WP加載模式之內, 就不要這樣做
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.