我正在开发一个网站,在那里访问者必须选择欧洲/亚洲地区,根据这个选择,菜单应该是不同的(大多数页面是相同的)。
当我在任何其他环境中开发此功能时,我的选择是将所选内容放入cookie中,并在模板中检查cookie。
在wordpress中有没有其他更好的方法?而且我认为一个很好的方法就是把它放在我的电脑里。htaccess。
所以应该是这样example.com/asia/aboutus
和example.com/europe/aboutus
.
问题是我也在使用qtranslate,所以我可能会把它搞砸,/asia/en/aboutus
. 那么我可以把这个放在我的永久链接中吗?
编辑
我试过这个方法(https://stackoverflow.com/questions/3256888/how-to-include-a-custom-string-in-a-wordpress-permalink ) 并根据我的需要进行了调整。但它似乎不起作用。有人能发现我的错误吗?非常感谢。当我访问网站时,现在会发生什么。com/en/asia/about-us它变成了网站。关于我们,没有其他事情发生。
tldr: 我有,网站。关于我们和我想要的,网站。com/en/asia/about-usso我可以在我的页面中找到“asia”,相应地更改我的菜单。
函数中的我的代码。php
function my_rewrite_rules($rules)
{
global $wp_rewrite;
// the key is a regular expression
// the value maps matches into a query string
$my_rule = array(
\'(.+)/(.+)/(.+)/?$\' => \'index.php?pagename=matches[3]&my_action=$matches[2]&lang=$matches[1]\'
);
return array_merge($my_rule, $rules);
}
add_filter(\'page_rewrite_rules\', \'my_rewrite_rules\');
function my_query_vars($vars)
{
// this value should match the rewrite rule query paramter above
// I recommend using something more unique than \'action\', as you
// could collide with other plugins or WordPress core
$my_vars = array(\'my_action\');
return array_merge($my_vars, $vars);
}
add_filter(\'query_vars\', \'my_query_vars\');
我的代码在索引中。php
echo esc_html(get_query_var(\'my_action\'));
我的。htaccess
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
<IfModule mod_rewrite.c>
AddType video/ogg .ogv
AddType video/webm .webm
AddType video/mp4 .mp4
</IfModule>