【发布时间】:2013-07-21 03:37:18
【问题描述】:
我目前正在开发一个 Wordpress 拍卖插件。该插件将项目存储在单独的表中。我已成功创建插件并按预期工作(在管理区域中)。
现在我正在尝试构建一个使用该插件的主题。我需要在网站的前端显示所有的拍卖品。当用户访问 url www.somesite.com/auctions/2 时,我想显示 id 为 2 的拍卖详情。
我已经成功编写了一个 .htaccess 重定向,它将获取 id,因此我可以使用 id 在表格中查找拍卖并显示其详细信息。但问题不在于如果我访问该网址,Wordpress 会显示 404 页面。
这是我尝试过的。
.hatccess
RewriteRule ^(auction)/(.*)$ ?action=$1&id=$2 [L]
所以现在如果有人访问/auction/1,var_dump(id) 会得到我1。我有一个Auction 课程,我打算通过在我的主题中执行$auction->get(id) 来获得相应的拍卖。
到目前为止,一切正常,除了我在访问网址时得到的404 page。如果有人访问该网址,我已尝试关注以摆脱 404 page。
// code below this point doesnt work as intended.
public function resolveURL(){
global $wp_query;
$action = $_GET['action'];
$id = $_GET['id'];
if($action == 'auction' && !empty($id)){
status_header(200);
$wp_query->is_page = $wp_query->is_singular = true;
$wp_query->is_404 = false;
}
}
在我的主题base.php 我打电话:
global $wppa; // plugin object
$wppa->resolveURL();
当我调用函数并且 url 是 /auction/someid 时,我不想得到 404 页面。任何帮助将不胜感激。
提前致谢。
【问题讨论】:
-
var_dump($id)应该为/auction/1返回1,不是吗?你说它返回2。如果您收到 URL 的 404 错误,您如何查看var_dump的结果? -
对不起。我的意思是 1。我会编辑它。我有一个 404 页面,网站被重定向到它。
-
你在哪里看到
var_dump的输出? -
我已经在函数
resolveURL()的if语句后面添加了。正上方status_header(200)