如何重写不可插入的父主题函数?

时间:2018-04-11 作者:cag8f

我的子主题中有一个PHP模板,可以调用函数ale_filter(), 通过

        <div class="articles">
            <?php ale_filter($_POST);?>
        </div>
该函数在父主题文件:/aletheme/functions中定义。滤器php。我想将此文件复制到我的子主题,对函数进行编辑,并确保所讨论的PHP模板调用此函数,而不是父主题函数。我该怎么做?

我已经使用相同的文件名和相对路径(/aletheme/functions/filter.php)将父主题文件复制到子主题。

<小时>Aprevious Stack Exchange question 链接到page 有三种方法。这三种方法是:

利用可插拔功能-此方法仅适用于父主题功能可插拔的情况。我的不是PHP man page on proc_nice 也不是很清楚。不过我想我可以再跟进一下。也许这里有人有主意我发现了其他几个堆栈交换问题,但我认为所有描述方法的答案都不适用于我的情况:

1 个回复
最合适的回答,由SO网友:Jacob Peattie 整理而成

由于该函数在子主题的模板中使用,因此没有什么可以阻止您使用具有不同名称的函数。因此,实际上不需要插入该函数,只需要创建一个可以执行所需操作的函数并使用它即可。

So复制ale_filter() 对于您的子主题,请将其重命名为ale_child_filter(), 随意更改它,然后只需更改模板即可使用该功能。

只有当函数用于不能用子主题覆盖的地方时,才需要插入该函数。当您无法更改函数的使用位置时,插入它将允许您重新定义函数。由于您可以更改所使用的函数,因此无需插入该函数。

结束