我想在javascript中更改网址,而不会影响浏览器的历史记录。 我在
中有这个网址http://abcd.com/parent/child/?id=xyz abc
它是我想要的WordPress网址
http://abcd.com/newurl/xyz ABC
我在javascript中使用history.replaceState
函数来更改其工作正常的URL,但每当我从浏览器点击后退按钮或刷新页面时,它会将我从当前页面重定向到主页。
我想要的是,它应该存储原始网址(http://abcd.com/parent/child/?id=xyz abc
)并向用户显示此网址(http://abcd.com/newurl/xyz ABC
)
我只想更改网址,而不是历史记录。 这是我的javascript代码
history.replaceState('', 'my title', 'http://abcd.com/newurl/<?php echo str_replace(" ","-",$_GET["id"]); ?>');
$_GET["id"]
是一个激动人心的xyz ABC
答案 0 :(得分:0)
这个怎么样?
<select class="form-control select form__blank">
<option disabled selected value> - select - </option>
<option>Full Furnished</option>
<option>Semi Furnished</option>
<option>UnFurnished</option>
</select>
答案 1 :(得分:0)
我认为你走错了路。您不应该在JavaScript中执行此操作,而应使用自定义重写规则在WordPress中解决此问题。
在这里阅读更多: http://codex.wordpress.org/Rewrite_API/add_rewrite_rule
详细解决方案:
例如,您希望网址http://example.com/india/?id=vip/
为http://example.com/india/vip/
其中india
是page slug
,id
是您的查询变量。
将以下代码添加到functions.php
文件中:
function add_query_vars($queryVars) {
$queryVars[] = "id"; // represents the name of the string as shown in the URL
return $queryVars;
}
// hook add_query_vars function into query_vars
add_filter('query_vars', 'add_query_vars');
function add_rewrite_rules($aRules) {
$aNewRules = array('india/([^/]+)/?$' => 'index.php?pagename=india&id=$matches[1]');
$aRules = $aNewRules + $aRules;
return $aRules;
}
// hook add_rewrite_rules function into rewrite_rules_array
add_filter('rewrite_rules_array', 'add_rewrite_rules');
在你的代码中说page.php
你可以使用像
if(isset($wp_query->query_vars['id'])) {
$testid = urldecode($wp_query->query_vars['id']);
}
echo $testid;
注意:请在更改上述内容后确保重置固定链接。