我试图修改阿瑟姆的塔龙主题的页脚。我正在使用一个正常工作的儿童主题。我如何修改页脚时,页脚。php调用位于函数页脚中的函数。php?
在页脚中。php,我有这个,我可以在子主题中修改它。
<footer id="colophon" class="site-footer" role="contentinfo">
<div class="container">
<div class="row">
<?php do_action(\'talon_footer\'); ?>
</div>
</div>
</footer>
如果我修改
<?php do_action(\'talon_footer\'); ?>
, 整个页脚都不见了。
这个talon_footer
操作可在themes/talon/inc/functions/functions页脚中找到。php。此文件包含页脚的3个操作:侧栏、信用和菜单:
/**
* Footer sidebar
*/
function talon_footer_sidebar() {
if ( is_active_sidebar( \'footer-1\' ) ) {
get_sidebar(\'footer\');
}
}
add_action(\'talon_footer\', \'talon_footer_sidebar\', 7);
/**
* Footer credits
*/
function talon_footer_credits() {
?>
<div class="site-info col-md-6">
<a href="<?php echo esc_url( __( \'https://wordpress.org/\', \'talon\' ) ); ?>" rel="nofollow"><?php printf( esc_html__( \'Powered by %s\', \'talon\' ), \'WordPress\' ); ?></a>
<span class="sep"> | </span>
<?php printf( esc_html__( \'Theme: %2$s by %1$s.\', \'talon\' ), \'aThemes\', \'<a href="//athemes.com/theme/talon" rel="designer">Talon</a>\' ); ?>
</div><!-- .site-info -->
<?php
}
add_action(\'talon_footer\', \'talon_footer_credits\', 8);
/**
* Footer menu
*/
function talon_footer_menu() {
?>
<nav id="footer-navigation" class="footer-navigation col-md- 6" role="navigation">
<?php wp_nav_menu( array( \'theme_location\' => \'footer\', \'menu_id\' => \'footer-menu\', \'depth\' => 1 ) ); ?>
</nav>
<?php
}
add_action(\'talon_footer\', \'talon_footer_menu\', 9);
themes/talon/inc/functions/folder还包含loader。php调用函数页脚。php文件:
require get_template_directory() . \'/inc/functions/functions-footer.php\';
我想在子主题中修改它。
我已尝试:
添加函数页脚。使用正确的路径将php添加到子主题,添加加载程序。php使用正确的路径访问子主题,并修改文件中的路径。它仍然使用父主题中的路径。
我还尝试添加require get_template_directory() . \'/inc/functions/functions-footer.php\';
儿童主题的功能。php,它告诉我函数不能声明两次。
如果我从函数页脚添加一个函数。php到子主题的函数。php,它会中断代码并返回一个白色页面。
我通过复制子主题函数中要修改的函数来解决这个问题。使用不同名称和不同类并使用css显示的php:在原来的php上没有,但这并不理想。php方法会更干净。
提前感谢!
最合适的回答,由SO网友:Elex 整理而成
你可以remove_action
和add_action
用你自己的行动。(https://codex.wordpress.org/Function_Reference/remove_action) 在子主题函数中。php您可以添加以下代码,例如:
add_action(\'init\', \'remove_talon_footer\'); // Remove your parent theme actions
function remove_talon_footer() {
remove_action(\'talon_footer\', \'talon_footer_sidebar\', 7); // Use same priority
remove_action(\'talon_footer\', \'talon_footer_credits\', 8);
remove_action(\'talon_footer\', \'talon_footer_menu\', 9);
}
/**
* Footer sidebar
*/
function my_talon_footer_menu() {
// What you want
}
add_action(\'talon_footer\', \'my_talon_footer_sidebar\', 7);
/**
* Footer credits
*/
function my_talon_footer_menu() {
// What you want
}
add_action(\'talon_footer\', \'my_talon_footer_credits\', 8);
/**
* Footer menu
*/
function my_talon_footer_menu() {
// What you want
}
add_action(\'talon_footer\', \'my_talon_footer_menu\', 9);
第一个函数告诉WP删除父主题中的操作,其他函数可以放在页脚函数文件中。