我很高兴在我的wordpress应用程序中获取URI并且缺乏PHP知识使我的进度变慢。 我有这个网址
http://abc.com/my-blog/abc/cde
我需要创建类似
的网址http://abc.com/my-blog/added-value/abc/cde
其中http://abc.com/my-blog
是我的wordpress博客的网址,我可以轻松使用以下方法
home_url()
我可以使用PHP $_SERVER["REQUEST_URI"]
获取请求URI,该URI将显示为
/my-blog/abc/cde
并且根据我的要求,没有直接的方法来增加价值
有没有办法在PHP或Wordpress中轻松实现这一点,我可以获得以下信息
所以最后我可以做以下
Home-URL+ custom-value+Rest part of the URL
我的困惑点
$_SERVER["REQUEST_URI"]
正在给我/my-blog/abc/cde
,其中/my-blog
是wordpress的安装目录,我可以轻松跳过第一级。/my-blog
不同,不会成为URL的一部分。答案 0 :(得分:2)
非常简短:
<?php
$url = "http://abc.com/my-blog/abc/cde";
$parts = parse_url($url);
$path = explode("/", $parts["path"]);
array_splice($path, 2, 0, array("added-part")); //This line does the magic!
echo $parts["scheme"] . "://" . $parts["host"] . implode("/",$path);
答案 1 :(得分:0)
好的,如果$addition
是您想要的位置,$uri
是您从$_SERVER["REQUEST_URI"]
获得的,那么......
$addition = "MIDDLEBIT/";
$uri = "/my-blog/abc/cde";
$parts = explode("/",$uri);
$homeurl = $parts[1]."/";
for($i=2;$i<count($parts);$i++){
$resturl .= $parts[$i]."/";
}
echo $homeurl . $addition . $resturl;
应打印:
MY-博客/ MIDDLEBIT / ABC / CDE /
答案 2 :(得分:0)
您可能想要使用explode或其他一些字符串函数。以下是一些例子:
$urlBits = explode($_SERVER["REQUEST_URI"]);
//blog address
$blogAddress = $urlBits[0];
//abc
$secondPartOfUri = $urlBits[1];
//cde
$thirdPartOfUri = $urlBits[2];
//all of uri except your blog address
$uri = str_replace("/my-blog/", "", $_SERVER["REQUEST_URI"]);
答案 3 :(得分:0)
这是在PHP中获取当前网址的可靠方法。
public static function getCurrentUrl($withQuery = true)
{
$protocol = stripos($_SERVER['SERVER_PROTOCOL'], 'https') === false ? 'http' : 'https';
$uri = $protocol . '://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
return $withQuery ? $uri : str_replace('?' . $_SERVER['QUERY_STRING'], '', $uri);
}
答案 4 :(得分:-1)
您可以使用wordpress使用get_home_url()
将主页面存储在变量中$home_url = get_home_url();
$custom_value = '/SOME_VALUE';
$uri = $_SERVER['REQUEST_URI'];
$new_url = $home_url . $custom_value . $uri;