web-dev-qa-db-ja.com

子供のテーマはどこのように機能しますか?

私は子テーマを作成してインストールしましたが、それが正確にどのように機能するのかわかりません!

たとえば、親テーマでは、以下のコードがあります。

.header {
   margin-top: 10px;
   margin-bottom: 10px;
   width: 300px;
   height: 150px;
   background: white;
   border-width: 5px;
}

そして私は幅を含めないようにしたいです。背景と境界の幅(背景と境界を必要としないため)を変更し、 "margin-top:10px;"を変更します。 "margin-top:15px;"まで子供のテーマで。

だから通常子供のテーマで私は持っているでしょう:

.header {
   margin-top: 15px;
   margin-bottom: 10px;
   height: 150px;
}

主題は私がそうするならWordPressが自動的に最初に子テーマのstyle.cssをチェックし、そして次に親テーマのstyle.cssをチェックするということです。そのため、不足しているコード(width:300px;、background、およびborder-width)が実行されます。

私は何をすべきか?私は少し混乱しています。親テーマから不要な各行を削除する必要がありますか。しかし、更新後にこれを実行すると、再度追加されます。

1
Charitos

あなたは正しいです、そのWordPressはあなたの親テーマからstyle.cssファイルを最初にロードし、そしてあなたの子テーマからstyle.cssをロードします。これらはCSS自体がどのように機能するのかという理由で、あなたがオーバーライドしたいルールを特別にオーバーライドしなければならないことを意味します。

これが意味することはあなたがあなたの子供テーマのstyle.cssの中でCSSを修正する必要があるということです:

.header {
   margin-top: 15px;
   margin-bottom: 10px;
   width: 100%;
   height: 150px;
   background: none;
   border-width: 0;
}
2
Rachel Baker

あなたはあなたの子テーマフォルダにheader.phpファイルをコピーして親テーマからスタイルシートのインポートを探して削除したいかもしれません。スタイルシートを含めたい場合は、次のように子テーマのstyle.cssにインポートします。

/* Import from parent theme styles first */
@import url('/path-to-parent-theme/style.css');

その後、CSSをすべて追加します。あなたのルールは、親からのもののいずれかを上書きします。

スタイルシートのインポートについては、functions.phpを参照してください。このように見えるかもしれません:

wp_register_style( 'style',get_stylesheet_directory_uri() . '/style.css', false );
wp_enqueue_style( 'style' );

あなたはあなたが必要なものをコメントすることができます。あなたはwp_deregister_styleとwp_dequeue_styleを使うことができますが、私はそれらが働くようになったことは一度もありません。

0
gorelog