Missing Argument

时间:2016-01-26 作者:Lowis

我的函数中有以下代码。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 ) {
有人能看到问题的原因吗?

1 个回复
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就无法凭空获得第二个参数