Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 覆盖wp_唯一文件名_Php_Wordpress - Fatal编程技术网

Php 覆盖wp_唯一文件名

Php 覆盖wp_唯一文件名,php,wordpress,Php,Wordpress,如何将回调参数传递给WordPress函数 wp_unique_filename接受3个参数($dir,$filename,和$unique_filename_callback=null)。我一辈子都搞不懂如何传递$unique\u filename\u callback 我已经尝试了add_action和add_filter,每种都是10/3 add_action( 'wp_unique_filename', 'my_unique_filename', 10, 3 ); add_filter(

如何将回调参数传递给WordPress函数

wp_unique_filename接受3个参数(
$dir
$filename
,和
$unique_filename_callback=null
)。我一辈子都搞不懂如何传递
$unique\u filename\u callback

我已经尝试了
add_action
add_filter
,每种都是10/3

add_action( 'wp_unique_filename', 'my_unique_filename', 10, 3 );
add_filter( 'wp_unique_filename', 'my_unique_filename', 10, 3 );
然后

function my_unique_filename( $dir, $filename, my_unique_filename_cb ){
}
function my_unique_filename_c(){
}
不管我为这个参数设置了什么,我都会得到一个解析错误,它需要一个变量。我试过:

my_unique_filename_cb
'my_unique_filename_cb'
my_unique_filename_cb()
'my_unique_filename_cb()'
更新 我认为它需要作为重写传递给
wp\u handle\u upload
,它接受一个重写数组,提取它,并在函数的后面作为参数传递
$unique\u filename\u callback
。在这种情况下,如何将函数作为数组中的参数传递(如果这是解决方案):

wp\u unique\u filename()
检查回调函数是否已指定、是否存在以及是否可调用。传递的参数是
$dir
$name
$ext
。下面是一个(无用的)例子:

wp\u handle\u upload()
使用的
wp\u unique\u filename()
指定自定义回调(示例):


那么我会用什么钩子来实现我的_unique _filename _函数呢?我尝试了wp_unique_文件名,但它没有启动,所以我无法测试它。谢谢我对你的问题读得不够透彻。您是否试图修改wp_unique_filename在wp核心函数中使用的行为?我希望通过自定义回调来运行我自己的唯一文件名计数器,而不是使用WordPress的默认计数器。原因是,我需要检查另一个目录来运行文件计数增量,而不是WordPress检查上载目录。如果您在函数中直接使用
wp\u unique\u filename()
,您可以做任何您想做的事情。在WP core中,唯一可以为
WP_unique_filename()
指定自定义回调的情况是在使用
WP_handle_upload()
时,例如
WP_handle_upload($files['file'],array('unique_filename_callback'=>'my_unique_filename_callback')我刚刚意识到这一点并更新了问题。我仍然会遇到解析错误:解析错误,在传递函数名时应为
'&''或
“variable(T_variable)”,就像我所想的那样,而您刚刚注释过的那样。(感谢您的持续帮助!!)
function my_wp_handle_upload( $file, array( 'unique_filename_callback' => myfunction ) ){
  //Which would then extract unique_filename_callback to $unique_filename_callback
  //and pass it to wp_unique_filename as the third parameter
}
function my_unique_filename_function( $dir = '', $filename = 'bar.exe' )
{
    echo wp_unique_filename( $dir, $filename, 'my_unique_filename_callback' );
}

function my_unique_filename_callback( $dir, $name, $ext )
{
    return $name . $ext;
}

my_unique_filename_function(); // echoes bar.exe
my_unique_filename_function( '', 'qux.gif' ); // echoes qux.gif
$uploadedfile = $_FILES['file'];
$upload_overrides = array( 'unique_filename_callback' => 'my_unique_filename_callback' );
$movefile = wp_handle_upload( $uploadedfile, $upload_overrides );
if ( $movefile ) {
    echo "File is valid, and was successfully uploaded.";
    var_dump( $movefile);
} else {
    echo "Possible file upload attack!";
}