-
投稿者投稿
-
2018年7月15日 9:14 AM #3734
テンプレート階層のルールに基づいて、テンプレートを用意していけば良いのですが、テーマの構造が通常のものと異なるので教えてください。
たとえば、投稿ページのカテゴリーごとにデザインを変えるとき、テンプレートの階層構造に従って、
category-[slug].php
header-[slug].php
footer-[slug].php
sidebar-[slug].php
と、作成をしていき、
header 部で、個々に css ファイルをリンクなどさせればよろしいかと思いますが、
snow-monkey でその設定をどう行えば良いのか分からないでおります。♥ 0いいねをした人: 居ません2018年7月17日 12:00 PM #3757子テーマでテンプレートを上書きすると、親テーマ(ここでは Snow Monkey ですね)のアップデートが子テーマに反映されないという問題がどうしても発生します。
そのため、親テーマでは「いかに最小単位で必要な部分だけを子テーマで上書きできるようにするか」というのが大事になってくるのですが、Snow Mokey では独自のテンプレート構造を用いることでそれを実現しています。
Snow Monkey の基本的なテンプレート構造は次のようになっています。
(カテゴリーページの場合)
- archive.php
- 大枠のレイアウトが定義されたレイアウトファイル (
templates/layout/xxxx.php
) の読み込み - コンテンツ部分が定義されたビューファイル (
templates/view/archive-投稿タイプ.php
) の読み込み
- 大枠のレイアウトが定義されたレイアウトファイル (
それぞれにどのようなコードを書けば良いかは Snow Monkey のレイアウトファイル、ビューファイルを参考にしてもらえればと思いますが、ヘッダー、サイドバー、フッターの読み込みについては、これも独自のコードで読み込むようになっておりまして、それぞれ次のようになります。
- ヘッダーファイルの読み込み (
wpvc_get_header( 'xxxx' )
で/templates/layout/header/xxxx.php
を読み込み ) - サイドバーファイルの読み込み (
wpvc_get_sidebar( 'xxxx' )
で/templates/layout/sidebar/xxxx.php
を読み込み ) - フッターファイルの読み込み (
wpvc_get_footer( 'xxxx' )
で/templates/layout/footer/xxxx.php
を読み込み )
大枠レベルでデザインを変えたい場合
子テーマで変更しやすいようにカテゴリー専用のファイルは用意していないので
archive.php
起点になっていますが、もしヘッダー・フッター・サイドバーとか大枠レベルでカテゴリーごとにデザインを変えたい場合はcategory-slug.php
を作成し、その次のように記述します。if ( have_posts() ) { $controller->render( 'category-slug' ); } else { $controller->render( 'none' ); }
そして、
/templates/layout/wrapper/category-slug.php
を作成して大枠の HTML を記述、/templates/view/category-slug.php
を作成してビュー部分の HTML を記述、という手順になります。ビュー部分(一覧が並ぶ部分)だけデザインを変えたい場合
いろいろやり方はありますが、たぶん次の方法がベストだと思います。
category-slug.php
を作成し、その次のように記述します。if ( have_posts() ) { $controller->render( 'category-slug' ); } else { $controller->render( 'none' ); }
そして、
/templates/view/category-slug.php
を作成してビュー部分の HTML を記述してください。カテゴリーごとに異なる CSS ファイルを読み込ませる
header 部で、個々に css ファイルをリンクなどさせればよろしいかと思いますが、
と書かれていましたが、WordPress は
header.php
などに直接 link タグで CSS を読み込むことを推奨していません。CSS の読み込みはwp_enqueue_scripts
アクションフックの中で、wされています。wp_enqueue_style
を使っておこなうことが推奨されています。例えば、子テーマのfunctions.php
に次のように記述します。add_action( 'wp_enqueue_scripts', function() { if ( is_category( 'slug' ) ) { wp_enqueue_style( 'category-slug', get_stylesheet_directory_uri() . 'category-slug.css' ); } } );
多分これを読んでも初見ではなかなか慣れなくて難しいと思いますので、ちょっと試されてみて、またご質問いただければと思います(慣れればこのような構成にしている利点が見えてくると思います…!)
♥ 0いいねをした人: 居ません2018年7月20日 5:48 AM #3844丁寧にお応えを頂いてありがとうございます。精査をしまして、改めてお伺いいたします。
♥ 0いいねをした人: 居ません2018年8月4日 8:14 PM #4385北島さん
カテゴリー毎にテンプレートを変えていく方法が分かりました。
ありがとうございます。この記事が参考になりました。
「WordPress 有料テーマ Snow Monkey の基本的な構造について …」カテゴリーごとに、投稿ファイルをカスタマイズをしていくにはどうしたらよろしいですか?
通常ですと下記のような感じになると思うのですけれど、・・・・。
「【メモ (WordPress)】 投稿ページのカテゴリ毎に異なるヘッダーを使うには」
「カテゴリー別にページのテンプレートやデザインを変更する方法」
♥ 0いいねをした人: 居ません2018年8月5日 12:56 PM #4407*上記質問は別投稿にした方がよかったでしょうか?
この投稿の前半の課題に戻りますが、
> ヘッダーファイルの読み込み ( wpvc_get_header( ‘xxxx’ ) で /templates/layout/header/xxxx.php を読み込み )
この記述において、
> そして、/templates/layout/wrapper/category-slug.php を作成して大枠の HTML を記述、
wrapper カテゴリーの中の一つのファイルの HTML 記述を複製して、
「category-slug.php」を作成したとします。
この中の
<?php wpvc_get_header(); ?>
部分をカスタマイズしたいのですが、うまくいきません。
例えば、
wrapper カテゴリーの中の一つのファイル one-column-fluid.php を複製して、
「category-slug.php」を作成したとします。
この中の
<?php wpvc_get_header(); ?> を編集かけても表示に変化が見られません。
どこかで読み間違いなどありましたら、ご指摘を頂けると助かります。
♥ 0いいねをした人: 居ません2018年8月9日 10:51 AM #4495わかりずらくすみません、、コード見ながらとなりで説明できれば多分一発だと思うのですが、文章にするとスマートに説明しづらくて。
えと、
/templates/layout/wrapper/category-slug.php
は大枠のレイアウトファイルになりますが、メインテンプレートから「/templates/layout/wrapper/category-slug.php
を使いたい」という指定をしなければなりません。ここでいうメインテンプレートとは、
/子テーマ/category.php
とか、/子テーマ/category-slug.php
とか、/子テーマ/single.php
とかになります。まとめると、
1.
/子テーマ/category-slug.php
を作成<?php $controller = new Mimizuku_Controller(); // layout/wrapper/category-slug.php をレイアウトファイルとして使用 $controller->layout( 'category-slug' ); if ( have_posts() ) { // 記事があるときは view/archive.php をビューファイルとして使用 $controller->render( 'archive' ); } else { // 記事が無いときは view/none.php をビューファイルとして使用 $controller->render( 'none' ); }
2.
/子テーマ/templates/layout/wrapper/category-slug.php
を作成/snow-monkey/template/layout/wrapper
内の適当なファイルをコピペして改変する♥ 0いいねをした人: 居ません2018年8月12日 7:55 AM #4522お応えありがとうございます。
検討して改めてご返事をいたします。
♥ 0いいねをした人: 居ません - archive.php
-
投稿者投稿
- このトピックに返信するにはログインが必要です。