-
投稿者投稿
-
2020年12月25日 10:44 AM #64186
【お使いの Snow Monkey バージョン: 12.1.2】
【お使いの Snow Monkey Blocks のバージョン 10.0.1】
【お使いの Snow Monkey Editor のバージョン4.0.0】
【お使いのブラウザ chrome】
【当該サイトのURL ローカル環境】### 実現したいこと
my-snow-monkeyで、テンプレートを追加。
特定のページだけオリジナルのテンプレートを使用したい。
my-snow-monkey/override 以下にpage-templatesフォルダとtemplatesフォルダ設置にテンプレファイルを作成。### 発生している問題
固定ページや投稿ページで、テンプレートを指定するが適応されずにデフォルトテンプレートになってしまう。
### 試したこと
オリジナルで作成したテンプレート以外(既存の)に指定することはできる。
オリジナルのテンプレートをデフォルトに設定すると適応されたのでテンプレとしては動作しているっぽい。
♥ 0いいねをした人: 居ません2020年12月25日 11:08 AM #64189テンプレートの読み込みはできていると言うことなので、
snow_monkey_template_part_root_hierarchy
などを使用されてルートを追加されているという認識で大丈夫です?その場合、優先度の問題か配列の順序の問題ですかねー。
第一引数の$hierarchy
は若い順から読まれてテンプレートファイルがある場合は、それを使用します。
なので、テーマのディレクトリにあるデフォルトのファイルを上書きする場合は後に追加するのではなく、若い順にする必要があります。
0
より優先にして読ませれば上書き対象にできるはずです。
array_unshift
などを使って配列の先頭にルートを追加して試してみてください。♥ 0いいねをした人: 居ません2020年12月25日 2:06 PM #64203yukyukai さん
my-snow-monkey/override 以下にpage-templatesフォルダとtemplatesフォルダ設置にテンプレファイルを作成。
こちらでも試してみようと思いますので、設置したテンプレートの名前を教えてください。
♥ 0いいねをした人: 居ません2021年1月7日 4:20 PM #64949ご返信ありがとうございます。
以下のようにしています。my-snow-monkey.php
//テンプレートの上書き////// add_filter( 'snow_monkey_template_part_root_hierarchy', function( $hierarchy ) { $hierarchy[] = untrailingslashit( __DIR__ ) . '/override'; return $hierarchy; } );
///////////////////////
page-templates/yes-my-page-templates.php
<?php /** * Template Name: yes-my-page-templates * Template Post Type: post, page */ use Framework\Controller\Controller; Controller::layout( 'yes-my-page-templates' ); Controller::render( 'content', get_post_type() );
///////////////////////
templates/layout/wrapper/yse-my-page-templates.php
<?php /** * Name: yes-my-page-templates * * @package snow-monkey * @author inc2734 * @license GPL-2.0+ * @version 11.5.0 */ use Framework\Helper; ?> <!DOCTYPE html> ~
♥ 0いいねをした人: 居ません2021年1月9日 2:07 PM #65072確認してみました。動作確認したところ、たしかにデフォルトのテンプレートが使用されてしまいました。バグかな?と思ったのですが、下記のスクショのような感じでコピペでつくったものと自分でつくったものと2つが同階層につくれてしまったので、おそらくハイフンがハイフンじゃないとか、そういう感じで目ではわからない似た文字が混ざっているのではないかなと想像しました。
ファイル名と Name の部分と、全て打ち直してみると解決するかもしれません。
♥ 0いいねをした人: 居ません2021年1月15日 2:03 PM #65478ご返答ありがとうございます。
ファイル名をaaaなど簡単な名称にして試してみましたが、デフォルトのテンプレートが使用されてしまう事象が引き続き起きているいる状況です。
別件で質問ですが
comments.php などテンプレート以外を変更したい場合は、my-snow-monkeyではなく子テーマで対応する必要がありますか?
♥ 0いいねをした人: 居ません2021年1月15日 3:46 PM #65496### my-snow-monkey.php
add_filter( 'snow_monkey_template_part_root_hierarchy', function( $hierarchy ) { $hierarchy[] = untrailingslashit( __DIR__ ) . '/override'; return $hierarchy; } );
### override/page-templates/aaa.php
<?php /** * Template Name: aaa * Template Post Type: post, page */ use Framework\Controller\Controller; Controller::layout( 'aaa' ); Controller::render( 'content', get_post_type() );
### override/templates/layout/wrapper/aaa.php
<html> <body> aaa </body> </html>
というファイルを用意して、固定ページの編集画面でテンプレート「aaa」を選択し保存、画面を表示すると、意図したとおり aaa だけが表示されました。
こちらで動作するということは恐らくなにか単純な間違いがある気がするので、もう一度ファイル構成のスクリーンショットと、それぞれのファイルの中身について書き込んでもらえないでしょうか?
別件で質問ですが
comments.php などテンプレート以外を変更したい場合は、my-snow-monkeyではなく子テーマで対応する必要がありますか?
comments_template
フィルターフックで対応できると思うので、My Snow Monkey でもできるのではないでしょうか?他のフォーラウ利用者の方も調べやすいように、1トピック1課題とさせていただいているので、別件については別トピックでお願いします。
♥ 0いいねをした人: 居ません2021年1月23日 3:39 PM #66117my-snow-monkey.php
<?php /** * Plugin name: My Snow Monkey * Description: このプラグインに、あなたの Snow Monkey 用カスタマイズコードを書いてください。 * Version: 0.1.1 * * @package my-snow-monkey * @author inc2734 * @license GPL-2.0+ */ /** * Snow Monkey 以外のテーマを利用している場合は有効化してもカスタマイズが反映されないようにする */ $theme = wp_get_theme( get_template() ); if ( 'snow-monkey' !== $theme->template && 'snow-monkey/resources' !== $theme->template ) { return; } //テンプレートの上書き add_filter( 'snow_monkey_template_part_root_hierarchy', function( $hierarchy ) { $hierarchy[] = untrailingslashit( __DIR__ ) . '/override'; return $hierarchy; } );
♥ 0いいねをした人: 居ません2021年1月23日 3:41 PM #66120override > page-templates > aaa.php
<?php /** * Template Name: aaa * Template Post Type: post, page */ use Framework\Controller\Controller; Controller::layout( 'aaa' ); Controller::render( 'content', get_post_type() );
♥ 0いいねをした人: 居ません2021年1月23日 3:47 PM #66123override > templates > layout > wrapper > aaa.php
<html> <body> aaa </body> </html>
何度もすいません。。
この様な構成で試しております。
♥ 0いいねをした人: 居ません2021年1月27日 3:07 PM #66468お返事遅くなりすみません。構成を拝見した限りだと僕が試したのと同じ構成のようなので、ファイル構成は問題なく、設定方法が yukyukai さんと僕とで違うことを指しているのかもしれないなと思いました。
固定ページや投稿ページで、テンプレートを指定するが適応されずにデフォルトテンプレートになってしまう。
とのことですが、具体的にどのような操作をされましたか? 僕は固定ページの編集画面(ブロックエディター)を開き、「ページ属性」の「テンプレート」で「aaa」を選択しました。
♥ 0いいねをした人: 居ません2021年2月3日 10:28 AM #66990横入り失礼いたします。
私の環境でもyukyukai様と1点以外、現在同じ現象が起きております。
違う1点とは、オリジナルのテンプレート(aaa.php)を「カスタマイズ」→「デザイン」→「固定ページ設定」→「ページレイアウト」からもオリジナルのテンプレート(aaa.php)に設定できないできない点となります。キタジマ様の#65496のコメントを参考に全く同じ階層で作成してみたのですが、固定ページの編集画面(ブロックエディター)から、「ページ属性」→「テンプレート」にて「aaa」を選択し更新ボタンを押下しましたが、「デフォルト」に戻ってしまいます。固定ページ一覧の「クイック編集」からテンプレート変更を試みましたが、そちらでも「デフォルト」に戻ってしまいました。
念のため、利用しているバージョンも記載いたします。
【Wordpress バージョン: 5.6】
【Snow Monkey バージョン: 12.2.2】
【Snow Monkey Blocks のバージョン 10.2.1】
【Snow Monkey Editor のバージョン4.0.1】他にどのような検証方法があるか、ご教示いただけますでしょうか?
よろしくお願いいたします。♥ 0いいねをした人: 居ません2021年2月3日 1:51 PM #67009実験用のプラグインをつくってみました。
下記のいずれの場合も正しく選択・反映されることを確認しました。
※その画面でリロードしたり、ページ表示確認後再度カスタマイザーやページ編集画面にいっても「デフォルト」にもどることなく「aaa」のまま– カスタマイザー → デザイン → 固定ページ設定 → ページレイアウトで「aaa」を選択
– 固定ページの編集画面で、ページ属性 → テンプレートから「aaa」を選択このプラグインを入れて試してもらって、それでも駄目なようならなにか他のコードや設定などが影響しているのかもしれません…。
♥ 0いいねをした人: 居ません2021年2月3日 2:43 PM #67015プラグインを作成いただきまして、ありがとうございました!
念のため、自身の「my-snow-monkey」を停止し、プラグインを実行させていただきました。– カスタマイザー → デザイン → 固定ページ設定 → ページレイアウトで「aaa」を選択
こちらはレイアウトの選択に「aaa」が出てきたのですが、<body>aaa</body>が出力されておらず、ダッシュボードのバー除く、何も表示されない真っ白な画面が表示されてしまいました。
– 固定ページの編集画面で、ページ属性 → テンプレートから「aaa」を選択
こちらについては、変わらず、「デフォルト」が表示されてしました。何か、影響を及ぼすような設定を施してしまったのかもしれません・・。もう少し調査してみます。
ありがとうございました。♥ 0いいねをした人: 居ません2021年2月3日 2:54 PM #67018あ、
<body>aaa</body>
だけだとカスタマイザーでスムーズな切り替えができなかったので、コンテンツだけが表示されるようなコードに変更しています。なので何かコンテンツがある固定ページに適用してもらうとわかりやすいかもしれません。♥ 0いいねをした人: 居ません -
投稿者投稿
- このトピックに返信するにはログインが必要です。