没有过滤器。要筛选值,开发人员需要通过在调用中包装可筛选值来创建筛选器apply_filters()
具有该筛选器的名称。他们没有这样做。
他们所做的就是WpkPageHelper
类可插拔。这意味着一个子主题可以替换整个类。
在定义之前WpkPageHelper
类,父主题正在检查if(! class_exists(\'WpkPageHelper\')) {
. 这是检查类是否已经定义,并且仅在尚未定义时定义类。因为子主题是在父主题之前加载的,所以您有机会定义WpkPageHelper
在父主题之前。然后父主题将使用您的版本。
因此,您只需复制WpkPageHelper
将类转换为子主题的函数。php文件(或子主题的函数文件中包含的其他文件)并进行所需的更改。只需省去class_exists()
检查:
class WpkPageHelper
{
public static function zn_get_subheader( $args = array(), $is_pb_element = false )
{
$config = zn_get_pb_template_config();
self::render_sub_header( $args );
}
public static function render_sub_header( $args = array() )
{
$defaults = array(
\'title_tag\' => \'span\'
);
}
}
这就是WordPress和一些主题和插件在条件语句中封装类和函数定义时所做的。你偶尔会看到这样的情况
if ( ! function_exists( \'function_name\' ) ) {
. 这是WordPress或主题/插件,让开发人员有机会定义自己版本的这些函数或类,以供WordPress或主题/插件使用,而不是自己使用。