functions.php 中的自定义函数中缺少参数
Missing argument within custom function in functions.php
这与使用 Woocommerce 的 Wordpress 网站有关。
我的服务器错误日志为访问特定页面的每个 IP 记录此错误:
Error: PHP Warning: Missing argument 2 for elixa_woo_hide_in_loop()
in "filepath"/functions.php on line 239
代码如下:
/*Within functions.php*/
add_filter( 'woocommerce_product_is_visible', 'elixa_woo_hide_in_loop', 2 );
function elixa_woo_hide_in_loop( $visible, $id ) {
echo "$id outside of if";
if ( $visible && get_field ( '_elixa_hide_cat', $id ) ) {
echo "$id in if";
return false;
}
return $visible;
}
/*Within website, displayed above each product*/
Warning: Missing argument 2 for elixa_woo_hide_in_loop() in "filepath"/functions.php on line 239
outside of if
这是上面引用的钩子:
http://woocommerce.wp-a2z.org/oik_hook/woocommerce_product_is_visible/
上面的代码影响了一个 Woocommerce "Browse all products" 页面,其中 taxonomy-product_cat.php 按类别显示所有产品。
此代码是我之前的开发人员自定义编写的,不是 Wordpress 或 Woocommerce 框架的一部分。
我一辈子都无法理解这应该为循环做什么。奇怪的是,当我删除 add_filter 时,它对产品显示的影响为零,错误也消失了。
当对所有这些查询测试 $id = NULL 或 0 时,我找不到最初声明此通用变量的位置:
打印 gettype($id);
打印 get_object_vars($id);
打印 is_array($id);
打印 is_object($id);
print_r($id);
打印计数($id);
打印 get_class($id);
打印 isset($id);
打印 get_parent_class($id);
打印 gettype($id->容器);
只是想接触社区,看看他们是否看到过类似的东西。这是消毒功能吗?它有什么作用?
您在注册过滤器时出错。第三个参数是优先级,而不是参数数量。参见 https://developer.wordpress.org/reference/functions/add_filter/
将您的代码更改为:
add_filter( 'woocommerce_product_is_visible', 'elixa_woo_hide_in_loop', 10, 2 );
这与使用 Woocommerce 的 Wordpress 网站有关。 我的服务器错误日志为访问特定页面的每个 IP 记录此错误:
Error: PHP Warning: Missing argument 2 for elixa_woo_hide_in_loop() in "filepath"/functions.php on line 239
代码如下:
/*Within functions.php*/
add_filter( 'woocommerce_product_is_visible', 'elixa_woo_hide_in_loop', 2 );
function elixa_woo_hide_in_loop( $visible, $id ) {
echo "$id outside of if";
if ( $visible && get_field ( '_elixa_hide_cat', $id ) ) {
echo "$id in if";
return false;
}
return $visible;
}
/*Within website, displayed above each product*/
Warning: Missing argument 2 for elixa_woo_hide_in_loop() in "filepath"/functions.php on line 239
outside of if
这是上面引用的钩子:
http://woocommerce.wp-a2z.org/oik_hook/woocommerce_product_is_visible/
上面的代码影响了一个 Woocommerce "Browse all products" 页面,其中 taxonomy-product_cat.php 按类别显示所有产品。
此代码是我之前的开发人员自定义编写的,不是 Wordpress 或 Woocommerce 框架的一部分。
我一辈子都无法理解这应该为循环做什么。奇怪的是,当我删除 add_filter 时,它对产品显示的影响为零,错误也消失了。
当对所有这些查询测试 $id = NULL 或 0 时,我找不到最初声明此通用变量的位置:
打印 gettype($id);
打印 get_object_vars($id);
打印 is_array($id);
打印 is_object($id);
print_r($id);
打印计数($id);
打印 get_class($id);
打印 isset($id);
打印 get_parent_class($id);
打印 gettype($id->容器);
只是想接触社区,看看他们是否看到过类似的东西。这是消毒功能吗?它有什么作用?
您在注册过滤器时出错。第三个参数是优先级,而不是参数数量。参见 https://developer.wordpress.org/reference/functions/add_filter/
将您的代码更改为:
add_filter( 'woocommerce_product_is_visible', 'elixa_woo_hide_in_loop', 10, 2 );