如何在插件中重写或更改form.php中的函数

时间:2017-01-19 作者:Frank

我在一个名为form.php. 我知道,为了实现我想要的工作,我只需要在$taxonomies = wp_dropdown_categories 在下面的函数中,并添加参数depth => 1 进入该函数中的代码行。

private function taxonomy_select_field($field = array()) {
    if ( isset( $field[\'label\'] ) ) {
        $this->label();
    }

    $this->output .= \'<div class="ap-form-fields-in">\';

    $taxonomies = wp_dropdown_categories( array( 
                \'taxonomy\'     => $field[\'taxonomy\'],
                \'orderby\'      => @$field[\'orderby\'],
                \'hide_empty\'   => 0,
                \'hierarchical\' => 1,
                \'selected\'     => @$field[\'value\'],
                \'name\'         => @$field[\'name\'],
                \'class\'        => \'ap-form-control\',
                \'id\'           => @$field[\'name\'],
                \'echo\'         => false
    ) );

    $this->output .= $taxonomies;

    $this->error_messages();

    if ( ! $this->field[\'show_desc_tip\'] ) {
        $this->desc();
    }

    $this->output .= \'</div>\';
}
但我不想手动更改这一行代码。如何使用代码段插件或functions.php? 具有add_actionremove_action 结合体

1 个回复
SO网友:nibnut

所以你不能像这样随意更改代码。如果您需要更改某些行为,那么插件作者需要为您提供挂钩-过滤器或操作。如果插件作者没有为您提供正确的挂钩,那么很遗憾,您无法更改行为。

您可以在插件代码中看到调用do_actionapply_filters - 这些将告诉您插件开发人员设置了什么样的挂钩。

如果您没有访问挂钩的权限,您唯一的“清理”选项是:

请插件作者允许自定义所使用的分类法-她将决定如何通过挂钩或插件设置,或者UPDATE

既然这是开源代码,那么你能做的就是fork the code, 然后在自己的副本中进行修改。但是,请确保更改插件的作者和URL,这样您就不会错误地更新插件并删除您的更改!

希望这有帮助!