首先,谢谢你的时间。我一直在搞乱这一点,无法弄清楚出了什么问题(这是我认为我理解的东西)我正在尝试更改通过WP上传的文件的保存位置。正如标题所示。 $ _GET并没有从 -
中提取任何内容 ?/动作= TYPE1&安培;项目= 1&安培;方法=添加
我可以使用适当的数字替换获取并获得正确的项目输出,因此我几乎可以确定$ _GET不会提取信息。据我所知,这是一个超变量,因此在进入函数时应该没有问题。
如果他们在我的逻辑,语法中发现任何问题,或者我错过了upload_dir / wp_handle_upload_prefilter钩子中发生的事情,有人可以告诉我吗?或者有任何关于故障排除/解决的建议吗?
$ _ GET在网站上的任何地方都使用,否则可以正常工作。
function ca_doc_pre_upload($file){
add_filter('upload_dir', 'ca_doc_custom_upload_dir');
return $file;}
function ca_doc_custom_upload_dir($path){
if (isset($_GET['project'])) {
$projectID = $_GET['project'];
};
if (isset($_GET['action'])) {
$type = $_GET['action'];
};
$project = ca_get_project($projectID);
$customdir = '/'.strtolower(str_replace(" ", "-", $project->project_name)).'/'.$type;
$path['path'] = str_replace($path['subdir'], '', $path['path']);
$path['url'] = str_replace($path['subdir'], '', $path['url']);
$path['subdir'] = $customdir;
$path['path'] .= $customdir;
$path['url'] .= $customdir;
return $path;}
add_filter('wp_handle_upload_prefilter', 'ca_doc_pre_upload', 2);
确认无法使用get检索。使用。
if (isset($_GET['action'])) {
$type = $_GET['action'];
}else{
$type = 'Not Getting';};
并尝试保存文件。它将其保存到“未获取文件夹”。 (取出项目部分)。
一些其他信息。使用get在function.php中创建了另一个函数,并在plupload发生的同一页面上调用它并且它有效。我现在唯一可以理解的是,它不起作用,因为从上传或钩子调用它正在做某事......我现在只是在猜测,因为我很久以前就用完了可行的逻辑。
再次感谢您的时间。
答案 0 :(得分:0)
您是否在WP query_vars()
中注册了查询参数?或许永久重写会干扰......?
https://wordpress.stackexchange.com/a/41373
添加参数后,您可能还需要重新保存永久链接设置。
答案 1 :(得分:0)
通过其他一些帮助和研究证明,在Wordpress中处理上传的plupload正在后台调用中执行一些AJAX工作;
url: '<?php echo admin_url('admin-ajax.php')?>'
由于某些原因,$ _GETs没有使用它,所以只需更改URL以包含它们,如下所示,一切都是正确的。
url: '<?php echo admin_url('admin-ajax.php?project='.$_GET["project"].'&action='.$_GET["action"].'') ?>'
显然当使用上面的钩子时,这是抓取$ _GETS
的点(admin-ajax.php)答案 2 :(得分:-1)
你试过吗
get_query_var('action');