用子主题覆盖函数.php

时间:2012-02-28 作者:Nona Man

我一直在寻找一个合适的解决方案来覆盖父主题函数中的函数和挂钩。php。我的父主题有:

    define(\'TS_INC\', TEMPLATEPATH .\'/inc\');
    require_once( TS_INC .\'/file1.php\');
    require_once( TS_INC .\'/file2.php\');
我想在我的子主题中有一个包含file2的/inc文件夹。php根据我的需要进行了更改。这意味着我希望每次调用file1。php访问父主题/inc文件夹并调用file2。php转到my child/inc文件夹。

提前谢谢。

1 个回复
SO网友:Chip Bennett

只有父主题生成函数时,才能重写父主题中的函数pluggable (将其包装在if ( ! function_exists( \'function_name\' ) ) 如果函数的输出通过filter (例如。return apply_filters( $filter_name, $function_output );

  1. Pluggable functions: 在儿童主题的functions.php 文件,只需定义一个与要覆盖的可插入函数同名的函数。例如,主题的设置功能通常就是这样,例如。twentyeleven_setup().
  2. Filterable functions: 在儿童主题的functions.php 文件,定义回调,然后调用add_filter( $filter_name, $callback );
如果父主题不提供这两种方法中的任何一种,则不能在子主题中重写父主题的函数。

编辑仅用于踢和笑,因为WordPress loads the Child Theme\'s functions.php file immediately before the Parent Theme\'s functions.php file, 尝试将以下内容添加到子主题的函数中。php:

<?php
define( \'TS_INC\', get_stylesheet_directory() .\'/inc\' );
?>
无论如何,值得一试。

结束

相关推荐