不包括放置在子主题中的文件

时间:2020-05-06 作者:reti

我修改了主题。php文件位于“Includes”文件夹中的父主题中,我也将其放置在“Includes”文件夹中的子主题中,但不包括我所做的更改。WordPress只读取父主题文件夹中的文件。这是什么原因?当文件位于子主题文件夹中时,我应该做什么修改?或者,如何重写包含/主题中的函数。函数中的php。php?我无法重写该函数,因为存在重新声明错误。

Edit 7.05.2020

@JacobPeattie-非常感谢。我读过了。我不知道我是否完全理解。我的英语还不是很好。我在函数中这样写。php:

if ( ! function_exists( \'bimber_capture_entry_featured_media\' ) ) :
function bimber_capture_entry_featured_media_my_modifications( $args ) {

//function code with my modifications

}
endif;
添加成功,但不起作用。

也许这是有用的信息:

文件主题。php是在函数中添加的。parentTheme/includes文件夹中的php文件如下:require_once BIMBER_INCLUDES_DIR . \'theme.php\';

另一个函数中的“echo”调用函数。

以下是php文件:

1 个回复
SO网友:Rup

您要替换bimber_capture_entry_featured_media 在您的孩子主题中。在主题中。您给我们的php文件可以看到,这只在一个地方调用,从bimber_render_entry_featured_media, 并将调用包装在筛选器中:

if ( apply_filters( \'bimber_render_entry_featured_media\', true, $args ) ) {
    echo bimber_capture_entry_featured_media( $args );
}
其中,从筛选器返回false将取消对默认代码的调用。假设这是真的,没有过滤器保护,其他任何函数都不会调用此函数,那么您可以做的是

实现bimber\\u render\\u entry\\u characterized\\u media过滤器;如果还有其他实现此功能的方法,请选择低优先级,但我在筛选器中没有看到这些文件中的任何内容,请呼叫您的替代者bimber_capture_entry_featured_media_my_modifications 并从筛选器回显结果return false,以取消对原始未修改代码的调用例如(未测试)

function bimber_render_entry_featured_media_filter_my_modifications( $flag, $args ) {
    if ($flag) {
        echo bimber_capture_entry_featured_media_my_modifications( $args );
    }
    return false;
}
add_filter( \'bimber_render_entry_featured_media\',
            \'bimber_render_entry_featured_media_filter_my_modifications\', 10, 2 );
然而,原始方法中也有很多钩子,因此根据您试图做的事情,您可能能够使用这些钩子来更改行为,而不是完全重写该方法。

相关推荐

如何在Pluggable.php中添加自定义函数

我正在开发一个WP插件,我想向pluggable添加一个自定义函数。php(位于/wp includes)。我正在从admin调用该函数。php(位于/wp admin)考虑一下功能auth_redirect 这是从admin调用的。php。auth_redirect 是在pluggable中定义的函数。php检查登录的用户,否则它会将他们重定向到登录页面。同样,我有自己的自定义函数。那么,是否有任何特定的钩子或过滤器,我必须使用它们来将我的函数附加到可插拔的。php。目前,我正在使用fwrite() 将