修改functions.php中的Wordpress插件功能

时间:2015-07-16 15:23:04

标签: php wordpress function wordpress-plugin

我需要从我正在使用的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中创建一个过滤器才能做到这一点?

1 个答案:

答案 0 :(得分:4)

如果不更改核心插件代码,我认为您无法实现您想要的功能。

编写良好的插件通常会调用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的插件,看看是否还有其他任何可以调整以获得相同结果的内容。