在Wordpress插件中编辑一个函数(或者有没有办法创建一个'Child插件')?

时间:2018-02-08 15:12:50

标签: php wordpress function class plugins

我正在使用名为Lightweight Social Icons的插件,我想添加自己的自定义图标,而无需编辑父插件。

以下是父插件的片段:

class lsi_Widget extends WP_Widget {
 ... (class functions are in here)
}

function lsi_icons( $options = '' ) {
    $options = array (
        'email' => array(
            'id' => 'email',
            'name' => __( 'Contact', 'lightweight-social-icons' )
        ),
        'delicious' => array(
            'id' => 'delicious',
            'name' => __( 'Delicious', 'lightweight-social-icons' )
        ),
        'deviantart' => array(
            'id' => 'deviantart',
            'name' => __( 'DeviantArt', 'lightweight-social-icons' )
        ),
        'digg' => array(
            'id' => 'digg',
            'name' => __( 'Digg', 'lightweight-social-icons' )
        ),
        'facebook' => array(
            'id' => 'facebook',
            'name' => __( 'Facebook', 'lightweight-social-icons' )
        ),
    );

    return apply_filters( 'lsi_icons_defaults', $options );
}

我想编辑lsi_icons()函数,以便我可以添加自己的图标,但它不在lsi_Widget类中。我有一个带有functions.php文件的子主题,我用它来使用动作和钩子对其他插件进行更改,但是,我不知道如何对此插件执行相同操作,因为我想要的功能修改是在课外。我一直在寻找一种创建“儿童插件”的方法,就像你做儿童主题一样,但我似乎无法找到如何做到这一点的明确答案。那么还有其他方法可以做我想做的事吗?

链接到LSI插件Github页面:https://github.com/tomusborne/lightweight-social-icons

1 个答案:

答案 0 :(得分:4)

没关系,过滤器位于何处。您可以从主题/子主题的functions.php文件中访问它。

这是代码:

function ww_change_lsi_icons($options){
  //here you can see all icons added. Add, delete, change them through $options variable

  return $options;
}
add_filter( 'lsi_icons_defaults', 'ww_change_lsi_icons' );