• いつもお世話になっています。

    WordPressバージョンアップとマルチサイト化にともない、テーマに変更を加えたところ
    style.css以外のcssが適用されない場合が発生するようになってしまいました。

    テーマは自作です。
    cssを読み込む部分は header.php で以下のように記述しています。

    <link rel="stylesheet" type="text/css" media="all" href="<?php bloginfo('template_url'); ?>/css/example.css" />
    <link rel="stylesheet" type="text/css" media="all" href="<?php bloginfo( 'stylesheet_url' ); ?>" />

    今回の変更点:
    ・WordPressを2.8より3.1.3 に更新
    ・既存のサイトに子ブログを設置
    ・子ブログでは、このテーマを親とした子テーマを使用
    ・子テーマにheader.phpはない(つまり親子で共通)
    ・そのため、前者のcssのパスを bloginfo('stylesheet_directory'); より bloginfo('template_url'); に変更

    状況:
    ・親ブログにて前者のcssが適用されない場合がある
    ・子ブログでは発生しない
    ・PC環境やブラウザの種類、バージョン、キャッシュには関連がないように見える
    ・吐き出されたhtmlにあるcssのパスは合っているように見える(つまりcssは存在する)

    最後の「cssのパスは合っている」ということからWordPressの問題ではないのかもしれません。とはいえタイミング的に今回の変更からなので気になっています。
    マルチサイトで子テーマを使う場合のコツなどありましたら教えていただけますか。
    よろしくお願いします。

7件の返信を表示中 - 1 - 7件目 (全7件中)
  • Codexに下記のような記述がありますが、その点は大丈夫でしょうか。

    http://wpdocs.sourceforge.jp/ネットワークの作成

    WordPressの設定による制約
    「WordPressファイルを専用ディレクトリに配置する設定」をしている場合、ネットワーク機能が正常に動作しません。
    次の場合には「ネットワークの作成」を実行できません。
    「WordPress のアドレス(URL)」と「サイトのアドレス(URL) 」が異なるとき
    「WordPress のアドレス(URL)」に「:80」「:443」以外のポート番号が付いているとき
    次の場合にはサブドメイン型インストールを選べません。
    WordPressがディレクトリの中に設置されている(ドキュメントルートにない)とき
    「WordPress のアドレス(URL)」が「localhost」のとき
    「WordPress のアドレス(URL)」が「127.0.0.1」などのIPアドレスであるとき
    次の場合にはサブディレクトリ型インストールを選べません。
    WordPressを設置してから1ヶ月以上経っている場合。既存のパーマリンク構造に問題が生じるため。(この問題は今後のバージョンで修正される見込みです)
    (正確な条件は wp-admin/network.php を参照のこと

    Codexの注意書きをクリアしている場合は、
    新規でマルチサイトを作った場合でも発生するかどうかを確認してみるのが第一歩ですかね。

    トピック投稿者 sysbird

    (@sysbird)

    >php-webさま、
    レスありがとうございます。

    ネットワークに関してはクリアしており、サブディレクトリでマルチサイトを作成しました。
    また2.8からのバージョンアップでしたので、今回は新規インストールでマルチサイトを作成しています。

    この状態になったとき、同じように指定している以下のJavaScriptは動作しています。
    <script type="text/javascript" src="<?php bloginfo('template_url'); ?>/js/example.js"></script>

    たまに参照できないファイルがある、というのはネットワークがらみなのでしょうか?
    再現性がないため困っています。

    sysbirdさん、
    参照できたりできなかったり、というのは私も経験したことが無いですね。

    自作テーマということなので、
    WP_DEBUGをTRUEにしてみて、deprecatedなテンプレートタグ/関数があるかチェックする
    はどうでしょう。
    古いテンプレートタグ/関数だと、マルチサイトの場合に変になるかもしれません。

    トピック投稿者 sysbird

    (@sysbird)

    WP_DEBUGをTRUEにしてみました。
    とくにエラーや警告はないようです。

    とくにエラーや警告はないようです。

    情報ありがとうございます。テーマは適切ということですね。

    だとすると、サーバーの負荷の可能性が高そうですね。
    マルチサイトは結構重いですし。
    サーバー負荷が原因なら、起きたり起きなかったり、というのもおかしくないですし。

    サーバーのログを見たら、途中で処理終了になっている箇所が見つかるかもしれません。

    もし、サーバー負荷の問題だった場合は、php.ini を編集して、memory_limit や max_execution_time 等の数値を多くしてみる、等で対処してみてはいかがでしょう。

    こんにちは
    sysbirdさん、公式テーマの時には、とても助かりました

    釈迦に説法のような感じで アレ なんですが

    公式テーマのレビュアーは、bloginfo()でテンプレートディレクトリやスタイルシートディレクトリを取得すると、以下の関数を推奨してきます。

    http://codex.wordpress.org/Function_Reference/get_stylesheet_directory_uri

    http://codex.wordpress.org/Function_Reference/get_template_directory_uri

    http://codex.wordpress.org/Theme_Review
    では、これらがrecommendになっているので、こちらの関数でも、同じ症状が出るかどうか試してみるというのはどうでしょうか?

    トピック投稿者 sysbird

    (@sysbird)

    >php-webさま、
    サーバーは重いのでそうなのかもしれませんね、

    >nobitaさま、
    こちらこそお世話になってます!
    そのようない推奨関数があるのですね、
    適用して様子をみたいと思います。

7件の返信を表示中 - 1 - 7件目 (全7件中)
  • トピック「style.css以外のcssが適用されない場合がある」には新たに返信することはできません。