[英]Override function (with hook) in wordpress
我有這種情況:
父主題:
functions.php
require_once(dirname(__FILE__) . "/includes/theme-functions.php");
require_once(dirname(__FILE__) . "/includes/theme-hooks.php");
theme-function.php
function name_of_this_function() {
// DO SOMETHING
}
add_action ('hook','name_of_this_function');
theme-hooks.php
function hook() {
do_action('hook');
}
給定我的名字之前,我該如何在我的孩子的functions.php中覆蓋該動作? 我試過了:
remove_action ('hook','name_of_this_function');
但是當然,這返回false
經過多次嘗試(非常失敗)並在線閱讀了大量文檔后,我得到了答案。
解決方案位於“ after_setup_theme”掛鈎中。
在將動作添加到父項的“頂部”之前,這意味着我有兩個頁眉,兩個頁腳,依此類推。 當然,問題在於我的functions.php無法刪除尚未添加的內容。
這是由在父主題之一之前運行子項的functions.php的wordpress行為引起的。
解決此問題的方法是在設置主題之后添加功能,該功能具有優先級,以強制其在父項之一之后運行。 這樣,將初始化父級的所有函數(將父級的后設置稱為最后一個函數),並且我將能夠刪除某些操作。 這是語法:
add_action('after_setup_theme', 'my_setup', 3);
function my_setup(){
/* CUSTOM FOOTER */
remove_action('footer_hook','parent_site_info',99);
add_action('footer_hook','site_info',99);
}
那解決了問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.