region selection

时间:2012-09-25 作者:woony

我正在开发一个网站,在那里访问者必须选择欧洲/亚洲地区,根据这个选择,菜单应该是不同的(大多数页面是相同的)。

当我在任何其他环境中开发此功能时,我的选择是将所选内容放入cookie中,并在模板中检查cookie。

在wordpress中有没有其他更好的方法?而且我认为一个很好的方法就是把它放在我的电脑里。htaccess。

所以应该是这样example.com/asia/aboutusexample.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>

1 个回复
SO网友:kaiser

简单想想:

将您的链接/URL附加到查询参数add_query_arg.

然后在加载时提取并使用exit( wp_redirect( home_url( \'/etc\' ) ); 或者任何最适合你的。

结束

相关推荐

widgetlogic and permalinks

我试图使用widgetlogic在某些页面上有条件地显示菜单。每个菜单都使用如下标记is_page(array(\"Page Name\", \"Page Name 2\" ...)), 在我尝试更改permalinks之前,它一直工作得很好(因此所有菜单都会从各自的页面中消失)。我做错什么了吗?是否有解决方法?