1

我正在尝试创建一个简单的预订表格。单独页面上有四个选项(团体、公司、学生和场地)。

例如:如果用户单击“立即预订”以获得“团体体验”,它应该将他们带到一个动态页面,该页面包含带有查询字符串“Group-Experience”的表单。此查询字符串将用于主题字段的值。

现在的问题,目前这就是我所拥有的:

URL: /book/?menu=group-experience
主题字段: “组体验”。

我想:

URL: /book/group-experience
主题字段: “团体体验”

我得到了它,所以-删除了:

<?php
$menu = str_replace ( "-", " ", $_GET['menu']);
?>

我查看了 StackOverflow 和其他网站,但找不到与 WordPress 一起使用的方法 - 表单位于模板文件中。

我的当前.htaccess

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /lab/foodfiendexp/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /lab/foodfiendexp/index.php [L]
</IfModule>
4

1 回答 1

1

您必须添加页面重写规则,为此将以下代码添加到 functions.php

add_filter( 'page_rewrite_rules', 'book_page_rewrite_rules' );
function book_page_rewrite_rules( $rewrite_rules )
{
    end( $rewrite_rules );
    $last_pattern = key( $rewrite_rules );
    $last_replacement = array_pop( $rewrite_rules );
    $rewrite_rules +=  array(
        '(.+?)/([^/]+)/?$' => 'index.php?pagename=$matches[1]&menu=$matches[2]',
        $last_pattern => $last_replacement,
    );
    return $rewrite_rules;
}

add_rewrite_tag('%menu%','([^&]+)');

然后从 Settings -> Permalinks 更新永久链接结构,你只需再次点击保存。

你访问你的菜单

$menu = get_query_var('menu');

现在您的网址应该可以使用

/book/group-experience 

考虑到书是一个页面,如果您需要将重写规则添加到帖子中,请将其更改为帖子重写规则

更多细节在这里:http ://codex.wordpress.org/Rewrite_API/add_rewrite_rule

另外,如果你需要一个重写规则检查器,这个插件非常好:http ://wordpress.org/plugins/monkeyman-rewrite-analyzer/

于 2013-07-20T11:11:55.880 回答