[解決済み] サブディレクトリでのパーマリンクの出力について

2012 年 1 月 18 日

ホーム フォーラム 使い方全般 [解決済み] サブディレクトリでのパーマリンクの出力について

このトピックには8件の返信が含まれ、2人の参加者がいます。5 年、 7 ヶ月前 nanbu さんが最後の更新を行いました。

9件の投稿を表示中 - 1 - 9件目 (全9件中)
  • 投稿者
    投稿
  • #50948

    kyokyo
    参加者

    WordPress のバージョン:3.3.1

    Welcart のバージョン:1.0.10.1112143

    ご利用のテーマ:Welcart Default Theme 1.1

    症状を確認したブラウザ:google chrome

    サーバー(会社名、サービス名):ファイアーバード

    SSLの利用:専用SSL

    WordPress のパーマリンク設定:/%category%/%postname%/


    はじめまして。

    お世話になります。

    一点解決できない問題がありますので、お力添えよろしくお願いいたします。

    現在、

    http://www.sample.com/sub/

    というようにサブディレクトリにてサイトを運用中です。マルチサイト設定はしておらず、「sub」ディレクトリにwordpressをインストールして、welcartプラグインを使用させていただいております。

    問題なのは、ウィジェットの「お勧め商品」や「ベストセラー」に表示される商品のURLが、

    http://www.sample.com/item/商品コード/

    となってしまうことです。トップページ中央の「お勧め商品」でも同様です。

    希望は

    http://www.sample.com/sub/item/商品コード/

    としたいです。(むしろそうしないと違うページに飛んでしまう)

    ウィジェット関連のphpファイルをいじればよいのでしょうか。

    お手数ですが、ご教授お願いいたします。

    #63573

    nanbu
    参加者

    こんにちは。

    特に何の設定も必要ありません。

    /sub/内にwordpress をインストールしますと、通常は/sub/wordpress/index.php となりますが、index.php はwordpress の外に出したということでよろしいでしょうか。

    改めてパーマリンクを設定を更新すると、/sub/直下にhtaccessができているはずです。/sub/wordpress/ 内にあるindex.php とhtaccess は念のため削除しておきましょう。

    WordPress が正常に動作していれば、URLは正しく生成されるはずです。

    #63574

    kyokyo
    参加者

    お返事ご丁寧にありがとうございました。

    ファイルを確認してみたものの、どうやら説明が少し不足していたようです。

    最上位階層(/)にメインのwordpressファイルを展開し、wp-adminやwp-contentフォルダが存在しています。

    この階層に「sub」フォルダを作り、その中(/sub)にwordpressファイルが展開されているので/sub/wordpress/index.phpとならず、/sub/index.phpとなっています。

    ・sub


    ・wp-admin

    ・wp-admin       ・wp-content

    ・wp-content      ・wp-includes

    ・wp-includes      .htaccess

     .htaccess       index.php 

     index.php         …

       …

         

    index.phpと.htaccessを削除してしまうと403エラーとなってしまいます。

    なお、固定ページや投稿(商品)ページ自体は、通常通り

    http://www.sample.com/sub/category/postname/

    と、サブディレクトリ以下のパスで表示されています。

    なので、get_permalinkでの取得に問題があるのかな・・・と、

    分からないなりに考えたのですが、どうしたらよいでしょうか。

    コンテンツ部分の「お勧め商品」のURLについては、

    <?php the_permalink() ?>でURL指定していたところを、

    直接に

    https://www.sample.com/sub/item/&lt;?php usces_the_itemCode(); ?>/

    と記述することで解決しました。

    また、カテゴリーウィジェットも駄目だったので、

    「パーマリンク設定」>オプションのカテゴリーベースに

    「sub」と記述することで解決しました。

    あとは、「お勧め商品」と「ベストセラー」のウィジェットを何とかしたいところです。

    お手数おかけしますが、よろしくお願いします。

    #63575

    kyokyo
    参加者

    ※追記

    テーマを「Twenty Eleven 1.3」に変えてみると、普通に

    https://www.sample.com/sub/category/postname/

    で表示されました。

    「Twenty Eleven 1.3」と「Welcart Default Theme 1.1」とでは、パーマリンクの取得に違いがあるのでしょうか?

    #63577

    nanbu
    参加者

    ルートにあるWPはパーマリンクを設定していると思いますが、ためしにルートのWPパーマリンクをデフォルトにするとどういう動きになるでしょうか。

    #63578

    kyokyo
    参加者

    やってみましたが、「/category/postname/」が「/?p=123」と変わった以外、特に変化はみられませんでした。

    #63579

    kyokyo
    参加者

    試行錯誤してみましたが、どうにもうまくいきませんので、

    別のテーマを使用することにしました。

    何度もご丁寧に対応していただきありがとうございました。

    Welcartプラグインはこれからも使わせていただきますので、

    また困ったことがあればお世話になります。

    お騒がせいたしました。失礼します。

    #63580

    kyokyo
    参加者

    原因がわかりましたので報告させていただきます。

    運営サイトをhttps://で表示した際に、ウィジェットなどのリンクURLがhttps://にならなかったので、function.phpに下記の記述をしておりました。

    これにより、すべてのURLを相対URLにしています。


    class relative_URI {

    function relative_URI() {

    add_action(‘get_header’, array(&$this, ‘get_header’), 1);

    add_action(‘wp_footer’, array(&$this, ‘wp_footer’), 99999);

    }

    function replace_relative_URI($content) {

    $home_url = trailingslashit(get_home_url(‘/’));

    return str_replace($home_url, ‘/’, $content);

    }

    function get_header(){

    ob_start(array(&$this, ‘replace_relative_URI’));

    }

    function wp_footer(){

    ob_end_flush();

    }

    }

    new relative_URI();


    8行目の

    return str_replace($home_url, ‘/’, $content);

    return str_replace($home_url, ‘/sub/’, $content);

    とすることで解決しました。

    #63581

    nanbu
    参加者

    原因がわかって良かったです。

9件の投稿を表示中 - 1 - 9件目 (全9件中)

このトピックに返信するにはログインが必要です。