• 解決済 akanez

    (@akanez)


    表題の件ですが、何回やってもデザインが崩れます。
    恐らくcssの読み込みが出来てないと思うのですが…

    親テーマのフォルダ名は「stinger3」
    子テーマのフォルダ名は「stinger3-child」
    子テーマの中にあるファイルは「style.css」と「function.php」のみで
    それぞれ下記コードを記載しております。

    「style.css」

    /*---------------------------------------------------------
    Theme Name: stinger3-child
    Template: stinger3
    Description: Customize css for stinger3
    Auther: Qtaro
    Author URI: http://room9.jp
    License:
    License URI:
    Version: 20131216 (for stinger3)
    ---------------------------------------------------------*/

    「function.php」

    <?php //子テーマで利用する関数を書く
    
    add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' );
    function theme_enqueue_styles() {
        wp_enqueue_style( 'parent-style', get_template_directory_uri() . '../stinger3ver20130925/style.css' );
    
    }

    上記2つのファイルをアップすると管理画面で子テーマとして認識されます。
    しかし、こちらを適応するとデザインが崩れてしまいます。

    stingerのバージョンは、「stinger3ver20130925」となります。

    大変お手数ですがご確認よろしくお願い致します。

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • mocomoco

    (@silent_dandy)

    get_template_directory_uri()は末尾にスラッシュがつかないので、

    wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/../stinger3ver20130925/style.css' );

    以上のようにすれば読み込むのではないかと思われます。

    こんにちは

    現状だと、stinger3ver20130925 の style.cssのコメントThemeNameをstinger3に変更していて、その状態でチャイルドテーマを作りたいという事ですよね。

    /*---------------------------------------------------------
    Theme Name: stinger3-child
    Template: stinger3
    Description: Customize css for stinger3
    Auther: Qtaro
    Author URI: http://room9.jp
    License:
    License URI:
    Version: 20131216 (for stinger3)
    ---------------------------------------------------------*/

    20131216 (for stinger3)の部分ですが、ここはチャイルドテーマのバージョンなのでチャイルドテーマのバージョンを付けておいたほうがいいです。

    <?php //子テーマで利用する関数を書く
    
    add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' );
    function theme_enqueue_styles() {
        wp_enqueue_style( 'parent-style', get_template_directory_uri() . '../stinger3ver20130925/style.css' );
    
    }

    たぶん@import ruleの書き方と混同してしまっているのではないかと思いますが、以下のように記述するといいだろうと思います。

    <?php //子テーマで利用する関数を書く
    
    add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' );
    function theme_enqueue_styles() {
    /*親テーマのバージョンは、以下で取得できます*/
    	$theme_parent_data = wp_get_theme('stinger3ver20130925');
    /*テーマのホルダー名もリネームしている場合は、stinger3ver20130925を書き換えてください*/
    	$theme_parent_data_version = $theme_parent_data->get( 'Version' );
    
        wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css',array(), $theme_parent_data_version, 'all' );
    
    }

    これで、デザインの崩れは おそらくなくなるだろうと思いますが、一つ大きな問題があります。

    このテーマだと、ヘッダーにスタイルシートの呼び出しがハードコーディングされています。

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

    親をwp_enqueue_style()等、標準的な方法で行うと、チャイルドテーマのCSSが先に読み込まれて、それを上書きする形で親テーマのCSSが読み込まれます。

    直ぐには問題になりませんが、カスタマイズを始めると諸問題が発生する可能性が高いです。(親と同じスタイルを書いても反映しないといった問題)

    なので、functions.phpの記述をやめて、@importルールにしてしまうとかが手っ取り早いと思いますが、パフォーマンスなども気になって、wp_enqueue_style()を採用したいといった事もあるでしょうから、

    どうすればいいのかという点などに付いては、独自配布のテーマなので、配布元に質問してください。

    トピック投稿者 akanez

    (@akanez)

    >>mocomocoさま

    ご回答ありがとうございます。
    ご教授いただいた方法では、デザインが崩れたままでした。

    >>nobitaさん
    ご回答ありがとうございます。
    ご教授いただいた方法では、デザインが崩れたままでした。

    一度配布元にも質問してみます。
    ありがとうございました。

    こちらで、実際に確認したのは、stinger3ver20140327 なので、バージョンの違いで何かあるのかもしれませんね。

    わたしはこれまで、Stinger 2, 3, Zero, 5 … そして現在は Stinger 6 を子テーマで使ってきましたが、問題にぶつかることはありませんでした。

    バージョンが変わるごとに仕様が変わるというか、デザインが見た目のレイアウト、内部構造ともに違いのあるテーマも珍しいです。

    だからか、アップデートのたびに子テーマを作りはしました。

    中には、作者のアドセンスコードが内部に残ったままだった、なんて事件も有りましたから作者のサイトから安定バージョンをダウンロードしなおしたうえで、
    プラグインを使って子テーマを作成してみるのも、試みてみてはいかが?

    トピック投稿者 akanez

    (@akanez)

    >>nobitaさま

    ありがとうございます。
    違うバージョンでも試したのですが駄目でした…。

    >>맹조さま

    ありがとうございます。
    こういった情報がネットに出ていないので、
    かなり特殊な事例なのかもしれません…。
    プラグインでの子テーマ作成も試してみます!
    ありがとうございます。

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • トピック「stinger3で子テーマを適応するとデザインが崩れる」には新たに返信することはできません。