3

我有一个wordpress网站。有一个类别页面,上面有一个表格来对帖子进行排序/过滤。

我尝试使用 $_SERVER['PHP_SELF'] 作为表单操作,因为我需要获取表单的内容来显示帖子,但是当我这样做时它会重定向到索引页面。

是否有一个原因?或者在 wordpress 中提交表单的更好方法。

谢谢

4

4 回答 4

5

这样做的原因是 Wordpress(几乎)通过 index.php 页面运行所有内容,然后通过其路由逻辑处理要显示的页面。您可能会尝试var_dump($_SERVER);查看您想要的值,但它可能是$_SERVER['REQUEST_URI'].

于 2012-06-07T13:53:05.477 回答
2

您可以使用the_permalink() wordpress 函数来回显当前页面的永久链接。

于 2015-07-22T09:49:41.027 回答
1

我认为您使用的内容会重定向到索引,因为 WordPress 使用了不错的 URL

您可以使用下面的函数来“检索”当前页面的完整 URL:

function selfURL()
{
    $ret = substr( strtolower($_SERVER['SERVER_PROTOCOL']), 0, strpos( strtolower($_SERVER['SERVER_PROTOCOL']), "/") ); // Add protocol (like HTTP)
    $ret .= ( empty($_SERVER['HTTPS']) ? NULL : ( ($_SERVER['HTTPS'] == "on") ? "s" : NULL) ); // Add 's' if protocol is secure HTTPS
    $ret .= "://" . $_SERVER['SERVER_NAME']; // Add domain name/IP address
    $ret .= ( $_SERVER['SERVER_PORT'] == 80 ? "" : ":".$_SERVER['SERVER_PORT'] ); // Add port directive if port is not 80 (default www port)
    $ret .= $_SERVER['REQUEST_URI']; // Add the rest of the URL

    return $ret; // Return the value
}

显然,您将需要使用<form method="GET" action="<?php echo selfURL(); ?>">来动态设置action表单。

于 2012-06-07T13:54:16.553 回答
-10

您在 html 操作中做错了事。

看到的是,当您使用 get 作为表单方法时,以前的值会从 url 中消失。

因此,要保留以前的值,您需要为查询字符串中存在的每个值设置隐藏输入。

请参阅获取这些值的示例。

<?php $exclude_values = array('to_date','from_date');
foreach($_GET as $key => $value){
    if(!in_array($key,$exclude_values)){?>
    <input type="hidden" name="<?php echo $key;?>" value="<?php echo $value;?>"/>
    <?php }
}
?>

我最近也在研究 wordpress 主题。

所以冷静这个答案是完全正确的,因为我很久以前就遇到过这个问题。

注意:添加那些$exclude_values已经存在于表单字段中的键以及表单提交后不需要的键。

还有一件事是使用selfURL动作字段的功能

于 2012-06-07T14:02:51.933 回答