サポート » 使い方全般 » wp外のページからwp子ブログのアーカイブリンクが正しく取得できない

  • 解決済 myojo1

    (@myojo1)


    こんにちは。
    Wordpress3.0を使用してマルチサイト化に取り組んでいます。

    もともとあったサイトにWordPressを入れて、一部をWP化しているため、
    普通のHTMLのページも多数残っています。

    それで、WP化されていないページに、
    WPの子ブログの月間アーカイブのリンクを表示する必要がでてきました。

    そこで、以下のコード記載しましたが、正しいリンクが取得できません。

    require('../../wp-load.php' );
    switch_to_blog( $sample_id );
    the_post();
    wp_get_archives("type=monthly&format=custom");

    取得したリンク:

    http://www.testxxxxx.com/koblog/blog/date/2010/07/

    あるべきリンク:

    http://www.testxxxxx.com/koblog/date/2010/07/

    urlに本来不要な/blog/という文字が含まれてしまっています。

    ちなみに子ブログから月間アーカイブのリンクを取得した場合は、ちゃんと正しいリンクが取得できています。

    どなたか詳しい方、よろしくお願いいたします。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • モデレーター jim912

    (@jim912)

    myojo1さん、こんにちは。

    同じ条件で試したところ、wp_get_archives(wp-includes/general-template.php)内のget_month_linkでリンクの生成がおかしいことが分かります。
    さらに、get_month_link(wp-includes/link-template.php)内のコードを追っていくと、

    $monthlink = $wp_rewrite->get_month_permastruct();

    となっており、WP_Rewriteクラス(wp-includes/rewrite.php)のインスタンスである$wp_rewriteを元にリンクの基本構造生成を行っています。

    結果から言うと、この$wp_rewriteが子ブログ用に切り替わっていないため、生成リンクがおかしくなってしまっているのです。

    ですので、switch_to_blogを行った後に

    unset( $wp_rewrite );
    $wp_rewrite = new WP_Rewrite;

    を実行してあげれば、子ブログのパーマリンク構造に合ったリンクとなるはずです。

    トピック投稿者 myojo1

    (@myojo1)

    jim912さん

    ありがとうございます!
    教えていただいた方法で正しいリンクを取得することができました。

    とても勉強になりました。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「wp外のページからwp子ブログのアーカイブリンクが正しく取得できない」には新たに返信することはできません。