更新选项和唯一文件名(_O)

时间:2012-11-03 作者:Baylock

在特定文件类型的上传过程中,我可以暂时禁用wordpress的自动任务,这很好。例如,我通过以下操作更改了pdf上载的常用上载路径:

//change the normal path
update_option(\'upload_path\',\'wp-content/uploads/attachments/\'.$id);
//upload the file
$upload = wp_upload_bits($pdffile,null,file_get_contents($pdffile_temp));
//get the standard path back
update_option(\'upload_path\',\'\');
现在我想对wordpress自动调用的“wp unique filename”函数做同样的处理。就像我临时更改此特定上载例程的路径一样,如果目标文件夹中的另一个文件具有相同的名称,我不想重命名该文件(我宁愿用新文件覆盖旧文件)。

我怎么能那样做?

非常感谢。

1 个回复
SO网友:kaiser

欢迎来到狮穴,您可以进入炽热的熔炉或狮穴,更改上传路径。如果不调查幕后发生的事情,这不是一个好主意。我不能给你一个完整的评论,因为涉及太多了,比如过滤器、选项调用、常量等等。但我可以给你一个建议:不要。做吧。这这样的事情往往会持续一段时间。然后突然断裂,因为你碰到了一个边缘案例。你会想知道发生了什么事。回调、选项等将向您隐藏问题,您将花费很多时间来跟踪此错误。

EDIT

不要手工/硬编码这些东西。

// Get original value
$temp = get_option( \'upload_path\' );
// Assign custom value
update_option( \'upload_path\', "wp-content/uploads/attachments/{$id}" );

// do custom stuff

// Move old value back in
update_option( \'upload_path\', $temp );
Thewp_unique_filename( $dir, $filename, $unique_filename_callback = null ) 函数接受三个参数。第三个是自定义回调和可选回调。它有三个参数:$dir, $name, $ext. 如果需要进行此自定义,请使用此选项。

  • $dir - 来自wp_unique_filename() fn
  • $ext - 通过检索pathinfo() (PHP默认值fn)-文件扩展名。在你的情况下if ( \'pdf\' === strtolower( $ext ) ).
  • $name - 不带扩展名的文件名也可以完全禁用自定义回调(我不知道接下来会发生什么-也许天塌下来了?)。只需使用__return_false, __return_null (甚至可能__return_zero?).

结束

相关推荐

WP中是否有内置的脚本、类和/或函数供插件从wp_Options中导出/导入其保存的数据?

在WordPress中,是否有任何受支持的“脚本插件”、类和/或WordPress函数允许插件将其自身数据从数据库导出/导入到txt/json文件?一种帮助处理插件中备份功能数据的方法。最初的代码是我在本地主机上工作的,但不是在我上线时,因为各种原因。最初发布时,正如奥利在回答中指出的那样,“你不能上传AJAX文件。它们不受支持,但你可以伪造它。”How can I upload files asynchronously with jQuery?. 从那以后,又增加了一些答案。使用表单和ajax函数时,大