WordPress 5.4引入了一個新函數(shù) apply_shortcodes(),它是當(dāng)前do_shortcode()函數(shù)的別名,也就是說,以后推薦使用 apply_shortcodes()來替代 do_shortcode() 。
總的來說,是為了規(guī)范命名語義。do_*隱含的語義表示函數(shù)顯示短代碼的結(jié)果。但是實際上并非如此。實際上,do_shortcode()需要采用Echo輸出其結(jié)果。
目前要輸出簡碼結(jié)果,使用的代碼為:
echo do_shortcode( '[wporg]My Text[/wporg]' );
// 必須添加echo才能顯示簡碼的結(jié)果
從語義上講,我們應(yīng)該不需要echo就可以輸出簡碼結(jié)果,但實際上沒有echo就無法輸出結(jié)果:
do_shortcode( '[wporg]My Text[/wporg]' );
// 但是這樣寫不會輸出任何內(nèi)容…
如您所知,do_shortcode()?它用于無數(shù)的插件和主題中。因此,目前無法直接棄用它。但是,如果大家可以開始圍繞別名apply_shortcodes() 達(dá)成共識,那么棄用 do_shortcode() 最終可能會在將來成為現(xiàn)實。
這種做法是有先例的,比如之前采用 get_the_permalink() 來替代 get_permalink() 一樣(WordPress 3.9.0)。
apply_shortcodes旨在獲得更好的語義:不是執(zhí)行操作并輸出到當(dāng)前緩沖區(qū),而是將過濾器應(yīng)用于輸入并返回結(jié)果。該過程更簡單,更簡潔,更易于維護(hù),也更利于新開發(fā)者理解和接受。
apply_shortcodes()可以和目前do_shortcode()使用一樣的方式:
echo apply_shortcodes( '[wporg]My Text[/wporg]' );
// 顯示簡碼的結(jié)果
邀請主題/插件作者和WordPress開發(fā)人員開始使用apply_shortcodes(),而不再使用do_shortcode()。
需要明確的是,目前還沒有決定何時棄用 do_shortcode()。但是開發(fā)人員越早將所有內(nèi)容切換到更具語義的apply_shortcodes(),核心團(tuán)隊就可以越早計劃棄用舊函數(shù)。從 WordPress 5.4 開始,推薦使用apply_shortcodes()來顯示簡碼結(jié)果。




