問題描述
我從來沒有見過像 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 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。

