Wordpress中的$ _GET function.php - 不工作

时间:2015-10-19 15:28:15

标签: php wordpress function get

首先,谢谢你的时间。我一直在搞乱这一点,无法弄清楚出了什么问题(这是我认为我理解的东西)我正在尝试更改通过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发生的同一页面上调用它并且它有效。我现在唯一可以理解的是,它不起作用,因为从上传或钩子调用它正在做某事......我现在只是在猜测,因为我很久以前就用完了可行的逻辑。

再次感谢您的时间。

3 个答案:

答案 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');