我的函数中有以下代码。php在Simple Paypal Shopping Cart 插件
function make_wpspsc_thumbs_lightbox_previews( $thumbnail, $atts ) {
// Code Credit: http://stackoverflow.com/questions/19323324/how-to-get-image-src-attribute-value-from-php-string
$doc = new DOMDocument();
// Let\'s make sure we don\'t execute this code on the wrong elements & blow up the site
if ( ! is_object( $doc ) ) {
return $thumbnail;
}
libxml_use_internal_errors(true);
$doc->loadHTML( $thumbnail );
$xpath = new DOMXPath($doc);
$imgs = $xpath->query("//img");
for ($i=0; $i < $imgs->length; $i++) {
$img = $imgs->item($i);
$src = $img->getAttribute("src");
}
// Now let\'s use the image src we just got & rel="lightbox" because that\'s what Responsive Lightbox from dFactory uses
$new_thumbnail = \'<a href="\'.$src.\'" rel="lightbox">\'.$thumbnail.\'</a>\';
return $new_thumbnail;
}
add_filter( \'wspsc_product_box_thumbnail_code\', \'make_wpspsc_thumbs_lightbox_previews\' );
当我在购物车中添加一些东西时,我得到警告:
Warning: Missing argument 2 for make_wpspsc_thumbs_lightbox_previews()
第16行是:
function make_wpspsc_thumbs_lightbox_previews( $thumbnail, $atts ) {
有人能看到问题的原因吗?
SO网友:Tom J Nowell
您没有指定函数在使用时接受多少个参数add_filter
:
add_filter( $tag, $function_to_add, $priority, $accepted_args );
您的代码只通过
$tag
和a
$function_to_add
, 但它并没有告诉WordPress它应该是什么优先级,或者函数需要多少个可接受的参数。你需要解决这个问题。如果不提供第4个参数,WordPress会假定函数只接受1个参数,即使在函数(
$thumbnail
和
$atts
).
此外,如果过滤器只提供一个参数,那么WordPress就无法凭空获得第二个参数