更改Media Uploader默认目录

时间:2016-09-03 作者:Mateusz Bartkowski

我在后端插件中使用WordPress媒体库。如何动态更改其上载路径?它可以在排队过程中完成,还是在JavaScript中创建时完成?

我正在使用wp_enqueue_media() 在里面admin_enqueue_scripts 操作,然后使用wp.media.

上载时,我已使用更改了目录plupload_default_params 过滤器,但我不知道如何连接到query-attachments 将文件查询到库中的操作。

Update: 经过几个小时的修补,我放弃了,我采用了不同的解决方案。我在插件的编辑页面上添加了一个新设置,并以其他方式重置它。这样,我就可以在ajax调用中访问该选项。

function change_upload_dir( $args ) {
        $user_id = get_current_user_id();
        $form = false;
        if( defined(\'DOING_AJAX\') && DOING_AJAX ) {
            $form = get_option( \'test_edit_\' . $user_id );
        }
        if($form || isset($_GET[\'type\']) || isset($_POST[\'subfolder\'])) {
            // change upload path 
在插件构造中:

    if( !(defined(\'DOING_AJAX\') && DOING_AJAX) 
       && false === strpos($_SERVER[\'REQUEST_URI\'], \'wp-content\') ) {
        $edit = get_option( \'test_edit_\' . get_current_user_id() );
        if ( $edit && $edit != \'\' ) {
            update_option( \'test_edit_\' . get_current_user_id(), \'\' );
        }
    }
除非用户打开一个新选项卡并重置设置,否则这一切正常。现在还可以,但我真的很想知道是否有更简单的方法。

2 个回复
SO网友:Aniruddha Gawade

可能想看看

https://developer.wordpress.org/reference/functions/wp_upload_dir/

在定义中,有一个钩子upload_dir, 你可以用它来改变path.

尚未尝试或测试,但您可以尝试一下。

SO网友:Mark Wilson

要更改默认媒体上载位置,需要编辑wp配置。php文件位于WordPress安装的根目录中。如果希望上载目录为wp内容/文件,则需要在中放置以下代码wp-config.php

define( \'UPLOADS\', \'wp-content/\'.\'files\' );
如果希望上载目录位于wp内容之外,如http://www.example.com/files/ 然后需要在中设置上载路径wp-config.php 像这样:

define( \'UPLOADS\', \'\'.\'files\' );
请记住,您仍然可以选择是否要将上载的文件组织在Settings » Media.

Function Reference /wp_upload_dir – WordPress Codex

相关推荐

从wp.media.editor.附件获取所选图像URL到文本输入失败。我做错了什么?

我已将媒体按钮作为post meta field 在以下情况下将图像URL插入文本字段Insert Into Page 单击按钮。它一直工作到打开“媒体存储库”窗口、选择“图像”和“插入”为止,但没有向输入字段传递任何值。Expected result结果应该是URL和媒体ID插入为https://avalon.com/dev/wp-content/uploads/2021/01/scp7147prko31.jpg|12 但没有返回值。我可以手动输入URL并保存数据。我彻底扫描了我的代码,并尝试了许多ja