不,这似乎不可能。至少不是直接的。如果父主题中的函数包装在以下内容中,则可以替换它们:
if ( ! function_exists( \'get_nav_markup\' ) ) {
}
因为子主题是在父主题之前加载的,所以您有机会定义
get_nav_markup()
加载父主题之前。那个
if
语句表示如果子主题中已有函数,则父函数不会注册该函数。
如果父主题已将函数与add_action()
, 像这样:
add_action( \'hook_name\', \'get_nav_markup\' );
然后,您可以编写自己的函数并将其挂接在原始函数的位置来替换该函数:
remove_action( \'hook_name\', \'get_nav_markup\' );
add_action( \'hook_name\', \'my_get_nav_markup\' );
因此,由于父主题不执行这两项操作,因此您唯一的选择是在模板级别进行替换。您需要:
复制get_nav_markup()
函数,但将其重命名。然后做你想做的任何改变复制get_header_markup()
函数,将其重命名,并将引用替换为get_nav_markup()
到子主题中重命名和修改的副本查找模板使用的模板get_header_markup()
, 大概是标题。php,将其复制到子主题,以便替换父主题,并将引用更改为get_header_markup()
到您的重命名和修改版本