向Wordpress插件的Class函数添加过滤器

时间:2019-07-15 16:25:08

标签: wordpress

我试图在一些插件HTML之前添加一些HTML,而不编辑实际的插件。

该函数出现在其类NavigationBar中。

class NavigationBar {
    public static function get_navigation_bar( $options ) {
        // THE CODE
        return $html;
    }
}

我想在我的functions.php中添加一个过滤器,如下所示:

function get_navigation_bar_with_ad( $html ) {
    $html = '<div>This appears before the nav bar.</div>' . $html;
    return $html;
}
add_filter( 'get_navigation_bar', 'get_navigation_bar_with_ad' );

除了在插件的代码中添加HTLM之外,还有一种简便的方法吗?我希望避免这种情况,以免将来的更新不会破坏代码。谢谢!


在使用NavigationBar::get_navigation_bar( $options )函数的构造函数中,他们将动作和过滤器添加到$ html对象。

add_filter( 'tps_the_content_after_current_slide', __NAMESPACE__ . '\\Content::filter_content_after_current_slide', 10, 2 );

如果可以使用此过滤器,我想我会得到想要的结果。

2 个答案:

答案 0 :(得分:1)

如果该插件本身提供了过滤器/操作,则可能是的,但似乎并非如此。 您可以通过“ apply_filter()”或“ do_action”函数来识别它,例如

app = Flask(__name__)

@app.route('/foo', methods=['POST'])
def foo():        
    # blablabla
    return jsonify(ret_image_as_str)

app.run(debug=True, use_debugger=False, use_reloader=False, passthrough_errors=True, host='0.0.0.0', threaded=True)

我建议您使用jQuery并按如下所示操作html:

$html = apply_filter(...);

向DubVader致敬:前置是正确的

好@LucyTurtle我可以为您提供帮助。如果有人确实需要以下解决方案,请在我的评论中添加您的最终解决方案: 解决方案:

jQuery('#idOfPluginHtml').prepend("<div>Your HTML</div>");

答案 1 :(得分:0)

知道了!使用@Tonno的答案,我找到了一个可以过滤的钩子。我将此过滤器添加到了functions.php

function get_navigation_bar_with_added_code( $html ) {
    return $html . '<div>This will appear above the nav bar.</div>';
}
add_filter( 'tps_the_content_after_current_slide', 'get_navigation_bar_with_added_code' );