如果仅从特定的管理页面运行筛选器,则运行筛选器(已更改‘UPLOAD_DIR’)

时间:2014-10-14 作者:Vladimir Lukyanov

情况如下:

在WordPress中,有一个插件页面,可以选择上传媒体文件。添加到此插件的代码,通过添加过滤器更改上载目录。

add_filter( \'upload_dir\', \'change_upload_dir\', 10, 1 );
并更改了媒体的上载目录。

问题是如何使此过滤器仅从该管理页面运行,而不是从其他类似页面或帖子运行,因为当您创建新的帖子或页面(和上载媒体)时,它会从WordPress自定义管理插件执行过滤器并更改上载目录。

1 个回复
SO网友:Vladimir Lukyanov

添加筛选器:

add_filter( \'upload_dir\', \'change_upload_dir\', 10, 1 );
功能内容:

 function change_upload_dir($param) {
        // Check for REFER
        $actual_page = $_SERVER[\'HTTP_REFERER\'];
        parse_str( parse_url($actual_page, PHP_URL_QUERY), $query_array );

            if ( strpos($actual_page, \'plugin_name.php\') ) {
            $mydir         = \'/customdir\';
            $param[\'path\'] = $param[\'basedir\'] . $mydir;
        }

        return $param;
    }
希望这会有所帮助

其他非基于HTTP\\u REFERER的想法值得赞赏:)

结束

相关推荐

Media Manager选择状态没有缩略图大小

我编写了一个插件,它使用新的media manager UI将图像插入到自定义图库自定义帖子类型中。所有东西都能百分之百工作,但在特定用户的网站上发生了一些奇怪的事情,我无法在本地复制。代码如下: var attachments = FOOGALLERY.media_uploader.state().get(\'selection\').toJSON(); $.each(attachments, function(i, item) { if (item