サポート » マルチサイト » マルチサイトのサブディレクトリ名を取得したい

  • 解決済 roses

    (@roses)


    マルチサイトをサブディレクトリ形式で作成しています。

    <?php $cat = get_the_category(); $cat = $cat[0]; {
    
      echo '<img src="http://example.com/images/' . $cat->category_nicename . '.jpg" alt="' . $cat->cat_name . '" />';
    
    } ?>

    このような感じで各ブログのサブディレクトリ名で画像を表示できるようにしたいのですが、サブディレクトリ名を呼び出す「category_nicename」のようなものはあるのでしょうか?

    ご教授よろしくお願いいたします。

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

    (@jim912)

    rosesさん、こんにちは。

    マルチサイト化したときの、特権管理者 > サイト のサイト情報の項目に表示されている情報は、get_blog_status関数を使うと取得が可能です。
    サブディレクトリ名は下記のコードで取得が可能です。

    get_blog_status( $blog_id, 'path' )

    ただし、このままですと前後に / (スラッシュ)が入ってしまいファイル名には利用できませんので、trim関数で除去します。

    trim( get_blog_status( $blog_id, 'path' ), '/' )

    ※ $blog_idはグローバル変数ですので、関数内に記述する場合はglobal宣言をする必要があります。

    こんにちは

    <?php
    global $blog_id;
    $my_name=get_blog_details($blog_id);
    echo "<pre>";
    var_dump($my_name);
    echo "</pre>";
    echo $my_name->blogname;
    
    ?>

    でも、取れるみたいです

    jim912さん、nobitaさん こんにちは

    ご返信ありがとうございます。
    どちらのソースでも無事にサブディレクトリ名が取得できました。

    それで欲が出てきまして、メインブログのトップに各ブログの新着を表示しているので、
    そこに各ブログのサムネイルを入れたくなり、教えていただいたソースを下記サイトの
    新着表示用ソースに入れてみたのですがエラーが出てしまいました。

    http://www.redistribution.cc/blog/20090403_120.html

    $thumbnail = get_bloginfo('template_directory')."/images/18r.gif";
    この部分を下記のようにしてみたのですがエラーが出てしまいました(汗
    $thumbnail = get_bloginfo('template_directory')."/images/". global $blog_id; echo trim( get_blog_status( $blog_id, 'path' ), '/' ) .".gif";

    再度の質問ですみませんが、ご教授お願いいたします。

    モデレーター jim912

    (@jim912)

    rosesさん、こんにちは。

    慣れないうちは、無理につなげようとせず、分けて書いた方が分かりやすいです。

    $dir_name = trim( get_blog_status( $blog_id, 'path' ), '/' );
    $thumbnail = get_bloginfo( 'template_directory' ) . '/images/' . $dir_name . '.gif';

    jim912さん こんにちは

    ご回答ありがとうございます!
    早速、いただいたソースを入れてみたのですがサブディレクトリ名($dir_name)が取得できませんでした。

    ご回答に気づく前に自分で試行錯誤しているうちに、下記のような感じでなんとか表示できるようになりました。

    $url = parse_url($link);
    $blog_path = $url['path'];
    $blog_name = trim( $blog_path, '/' );
    $thumbnail = get_bloginfo('template_directory')."/images/". $blog_name .".gif";

    まだ、PHPがよく分からないのでスマートな方法かどうか分かりませんが(汗

    rosesさん、jim912さんこんにちは
    マルチサイトを変更して上、get_blog_statusを使う場合、全然問題がありません。

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • トピック「マルチサイトのサブディレクトリ名を取得したい」には新たに返信することはできません。