在'functions.php'中修改WordPress插件函数


Modify WordPress plugin function in 'functions.php'

我需要从我正在使用的WordPress插件更改函数的值。

如果我在原来的插件文件中这样做,它工作得很好,但我宁愿在文件functions.php中这样做,以避免插件更新时出现问题。

我需要改变这个:

public static function loop_shop_per_page() {
    return get_option( 'posts_per_page' );
}

这:

public static function loop_shop_per_page() {
    return '-1';
}

我该如何在文件functions.php中创建一个过滤器来做到这一点?

不改变核心插件代码,我认为你无法实现你想要的。

写得好的插件通常有apply_filters方法调用任何可能需要调整的主题开发人员。因此,插件代码应该看起来像这样:

// Using apply_filters() to allow overriding of values...
public static function loop_shop_per_page() {
    $value = get_option( 'posts_per_page' );
    return apply_filters('filter_loop_shop_per_page', $value);
}

然后,在functions.php文件中,您可以通过添加如下过滤器来更改该值:

add_filter('filter_loop_shop_per_page', 'mytheme_loop_shop_per_page');
function mytheme_loop_shop_per_page($value){
    return -1;
}

不幸的是,除非你编辑插件代码,否则你可能无法做你想做的事情。您可以随时搜索apply_filters插件,看看是否有任何其他你可能能够调整,以实现相同的结果。