2

私はワードプレスアプリケーションでURIを取得することに驚いており、PHPの知識が不足しているために進行が遅くなっています。私はこのURLを持っています

http://abc.com/my-blog/abc/cde 

次のようなURLを作成する必要があります

http://abc.com/my-blog/added-value/abc/cde

http://abc.com/my-blog次の方法で簡単に取得できるワードプレスブログのURLはどこ ですか

home_url()

PHP$_SERVER["REQUEST_URI"]を使用してリクエストURIを取得できます。

/my-blog/abc/cde

そして、私には私の要件に従って価値を追加する直接的な方法がありません

PHPまたはWordpressでこれを簡単に実現する方法はありますか?次の情報を入手できます

  1. ホームURL
  2. URLの残りの部分

最終的に私は次のことができるように

Home-URL+ custom-value+Rest part of the URL

私の混乱のポイント

  1. 私のローカルセットアップで$_SERVER["REQUEST_URI"]は、wordpressのインストールディレクトリがあり、最初のレベルを簡単にスキップできます。/my-blog/abc/cde/my-blog
  2. 本番サーバー/my-blogでは、URLの一部とは異なります。
4

5 に答える 5

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);
于 2012-11-20T16:40:07.637 に答える
0

explodeまたはその他のsting機能を使用することをお勧めします。以下のいくつかの例:

  $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"]);
于 2012-11-20T16:41:18.737 に答える
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;

印刷する必要があります:

私のブログ/MIDDLEBIT/abc/cde/

于 2012-11-20T16:38:06.547 に答える