問題描述
我從來沒有見過像 do_action('something_10')這樣的標籤。如果我使用數字是無效的嗎?
如果方法有效,那麼我如何有條件地在標籤字符串中寫入不同的數字?例如,以下代碼是否正確 ($ grade 是數字)?
do_action("new_grade_$grade")
最佳解決方案
-
當您將”hook” /
add_action/*_filter('whatever');的一個回調函數傳遞給do_action('whatever');時,您基本上將功能 (或 object-method) 名稱添加到global $wp_filters-array 。 -
這樣做,您將函數/方法名稱添加到如下構建的數組中
$wp_filter[ $tag ][ $priority ][ $idx ] // $tag = action/filter name // $priority = 3rd argument / execution order // $idx = "unique" name -
不是第三個參數/
$idx是使用_wp_filter_build_unique_id()函數構建的,它是add_action/*_filter()中的第一個參數。 -
在這個函數內,每個函數名保持不變,只有方法名變化。這就是為什麼你經常會找到”funky” 方法名稱,前綴有一個很長的數字。
Can I add numbers after letters in do_action tag?
所以是的,數字在命名動作掛鈎時是完全有效的。總結一下,使用 a-zA-Z0-9_作為函數/方法/變量名稱。不支持-。而某些字符在系統上可能會很好地工作,它主要取決於編碼,如果您選擇的函數名稱 (例如:_wUT?a_nice_DÄY!()) 有效。 WordPress 本身不檢查函數/var /hook /filter /任何名稱是否有效。
另外 @BrianFegter 回答關於”contextual hooks” 。
您可以在 (MU 或單) 安裝中使用 this plugin 1) 的 (任何) 屏幕中查看» 幫助 «-panel,看到一些”contextual hooks” 。
1) 插件靈感來自 @StephenHarris 的文章。
次佳解決方案
是的,您可以動態創建自己的動作鈎子。 WordPress 有幾個動態掛鈎,如 admin_head-hookname 和 admin_footer-hookname 。 new_grade_$n 是一個有效的掛鈎名稱。
參考文獻
注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。

