php - 修改 'functions.php'处的WordPress插件功能

标签 php function wordpress

我需要更改我正在使用的 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,看看是否还有其他任何您可以调整的内容以达到相同的结果。

关于php - 修改 'functions.php'处的WordPress插件功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31458364/

相关文章:

php - POST instagram api 跟随 cURL PHP

php - 使用 mysql 和 PHP 在选择下拉列表中分类

php - 如何限制自定义字段接受重复值

php - 返回一个在 WordPress 简码中包含变量的字符串

php - add_action 在插件 activate() 中不起作用 使用 wordpress 插件样板的方法

php - 使用 For 循环从数组中搜索 MySql 中的 Id

php - 如果 key 正确,如何将亚马逊 key 保存在数据库中?

function - 如何从 SASS 中的任意数字中去除单位?

mysql - 日期mysql函数错误

C++:如何从我自己的函数中的头文件中调用一个函数(比如 funA()),它的名字也是 funA()?