サポート » 使い方全般 » WordPressを設置した階層より上のURLを相対パスで取得するには

  • 解決済 ys8

    (@ys8)


    こんにちは。たびたびお世話になっております。

    トピックタイトルにあるように
    「WordPressを設置した階層より上のURLを相対パスで取得する」方法を探しています。

    今回クライアントの要望があり、
    http://example.com/ 内の /wp/というディレクトリにWordPressを作成しました。
    WordPressで制作した全ページには 一つ階層が上の http://example.com/ にリンク
    するボタンを設置しています。これをWordPressで作成しているということもあり、
    絶対パスでリンクしていたのですが、http://example.com/内のリンクは全て
    「相対パスでリンクして欲しい」と言われました。
    そこで、get_site_urlの$pathに「../」を指定すれば、
    上の階層を指定できるかと思ったのですが、上の階層のURLは取得できませんでした。

    WordPressを設置した階層より上のURLを取得するにはどのような方法を
    とればいいのでしょうか。初歩の初歩な質問だったらすみません…。
    ご教授いただけるととても助かります!何かご存知の方がいらっしゃいましたら、
    よろしくお願いします。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • 管理ページ→設定→一般設定
    サイトアドレスを変えればsite_URL()で取得できない?

    ただこれを変えるとパンくずとか他で使ってるのもズレルから
    他の場所のURLは加工して”/wp/”でもURLの末尾にくっ付ければ良いかな
    正直セキュリティ上よくないとは思うんだけれど

    スレッド開始 ys8

    (@ys8)

    CyberCypherさん、こんばんは。回答ありがとうございます。

    手を離すことができず、頂いた回答のものをまだテストできては
    いないのですが少し疑問点があるので一旦返信させてください!

    管理ページ→設定→一般設定のサイトアドレスを変更するということは
    WordPressブログを呼び出す時に、ブラウザに閲覧者が入力するURLを
    変更してしまうという解釈でいいでしょうか。

    わかりにくい説明で申し訳ないのですが、私が目指してるサイトは
    http://example.com/(既存のサイトがある)
    -http://example.com/wp/(今回制作したWordPress)
    という構造になっており、一般設定のサイトアドレスに
    http://example.com/
    を入れてしまうと既存のサイトが見れなくなる…ということはないのでしょうか?
    また、セキュリティ的な問題のことを具体的に教えて頂けるとうれしいのですが…。

    手が空いたら、お教えいただいた方法で一度試して結果をお知らせいたします!
    回答ありがとうございました!他にもいい方法があるよ、などがあれば
    ぜひぜひ教えていただきたいです。

    WordPress アドレス (URL)とサイトアドレス (URL)は別物です
    WordPress アドレス (URL)がWPの存在するURLになりますので弄ってはいけません
    サイトアドレスはWPのサイトの他にHPURLを持てる機能です
    なにはともあれ一度確認して下さい、管理サイトで見ればすぐ横に説明が書いてあります
    WPのサイトをいくつか持つ場合使うこともありますね

    基本的に最上位階層は現時点でドメイン/WPのフォルダになっていると思います
    なのでwordperessの機能をつかって相対パスではたどりつけません
    最上位階層を書き変えてやる事が一つの方法になると思います

    確りindexにリンクを張ってアクセス制限をかけていれば大丈夫かと思うのですが
    URLを編集してしまう際、人為的なミスによって別の階層へアクセスしてしまったり
    下手な書き方をするとURLからサイト構造丸わかりって事にもなりかねなかったり
    そこまで神経質にならなくても良い気はします
    個人的にURLの加工って言うのに良い気分がしないだけなので・・・

    先に言ったばかりでURLの操作を言うのも気が引けるのですが
    現在の最上位階層はget_site_urlで取れると思います
    ドメイン名/Wp名/だと思いますphpで書くなら
    strrpos($URL, “/”);だったかな
    文末から”/”区切り文字を探し出してsubstrやstrreplaceで余計なURLを除去するのも手かと思います

    スレッド開始 ys8

    (@ys8)

    CyberCypherさん、またまた回答ありがとうございます。

    丁寧に答えてくださってありがとうございますー!
    CyberCypherさんの回答を参考に進めてみて、
    無事に相対パスで最上位階層のリンクを取得することができました。

    サイトアドレス (URL)を変更して取得する方法なんて自分だけじゃ
    思いつかなかったと思います。力を貸してくださり本当にありがとうございました。

    セキュリティについても深刻な問題がある、というわけではないのですね。
    >確りindexにリンクを張ってアクセス制限をかけていれば大丈夫かと思うのですが
    ということで、wp-adminディレクトリにアクセス制限をかけました。
    対処のしようがあるなら少し安心ですね。

    substrを使ったことはあったのですが、strrposやstrreplaceという関数も
    あるのですね。勉強してみようと思います。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「WordPressを設置した階層より上のURLを相対パスで取得するには」には新たに返信することはできません。