-
投稿者投稿
-
2019年11月29日 10:21 PM #37407
トピックを新しく立てる方は次の項目も記述してください(要望トピックの場合は不要です)。
【お使いの Snow Monkey のバージョン】 8.2.0
【お使いのブラウザ】Chrome
===
お世話になります。
とあるプラグインでカスタム投稿タイプが自動的に作成され、そのカスタム投稿タイプが「投稿」の形になっています。
ブログは2カラム、「とあるプラグイン」で作成したページは1カラムで表示させたいのですが、プラグインの仕様なのかバグなのか、投稿する際のテンプレートを「デフォルト」以外にするとアーカイブページが壊れてしまいました(なぜか singular.php で表示しようとしている…)。デフォルトのままなら問題ないという点がわかったので、singular.php 側でカスタム投稿タイプか通常の投稿かを判断して特定のカスタム投稿タイプであれば one-column.php を使用する形を取ろうとしています。
子テーマにて、page-templates を親テーマからコピーした上で singular.php に以下のように記入しました。
use Framework\Controller\Controller; if (!is_singular(‘customposttypename’)){ Controller::layout( get_theme_mod( ‘singular-post-layout’ ) ); Controller::render( ‘content’, get_post_type() ); } elseif (is_singular(‘customposttypename’)) { get_template_part( 'page-templates', 'one-column' ); }
すると、通常の投稿やページの投稿は問題ないのですが、
“elseif” のほうはNotice: page-templates が見つかりません。削除または移動された可能性があります。 in /home/hoge/example.jp/public_html/stg.example.jp/wp-content/themes/snow-monkey/vendor/inc2734/wp-view-controller/src/setup/debug-template-overwrite.php on line 42
というエラーが出てしまいました。
ほかにももともと書かれていたコードを参考にいろいろ試したりなどしたのですが、基本的に上記エラーが表示されてしまいます。
この場合、どのようにカスタマイズすれば良いでしょうか?♥ 0Who liked: No user2019年11月30日 11:55 AM #37460「とあるプラグイン」は wp.org で公開されているプラグインでしょうか? もしそうであって、教えていただくことが可能であれば教えてほしいです(公言できない場合は DM でも構いません)。
Snow Monkey はコントローラー/ビューテンプレートの仕組みを独自につくっているため、普通のテーマとは最初に呼びだされるテンプレートの呼びだし方がちょっと違います。そのため、プラグインの最初のテンプレートの呼びだし方によっては正しく表示されないということが起こりえます。もし公開されているプラグインで、こちらで検証が可能であれば、Snow Monkey 自体に修正を入れてそのプラグインの場合は特別なテンプレートの呼び方をする、というような対応も可能かと思いまして。
singular.php で対応する場合、下記のようにするとどうなりますでしょうか?
use Framework\Controller\Controller; if ( !is_singular( 'customposttypename' ) ) { Controller::layout( get_theme_mod( 'singular-post-layout' ) ); } elseif (is_singular( 'customposttypename' ) ) { Controller::layout( 'one-column' ); } Controller::render( 'content', get_post_type() );
Controller::layout()
はtemplates/layout/wrapper
の中にあるレイアウトファイルを指定しています。Controller::render()
はtemplates/view
の中にあるビューファイルを指定しています。上記の場合だと投稿タイプが
customposttypename
の投稿の場合は1カラムのレイアウトファイルを使い、それ以外の投稿の場合はカスタマイザーで設定されたレイアウトを使用する、ということになります。♥ 0Who liked: No user2019年11月30日 2:35 PM #37480ありがとうございます。
提示いいただいたコードで、やりたいことを実現できました!
まだ SnowMonkey を使い始めたばかりですが、カスタマイズについて今後も勉強させていただきます。「とあるプラグイン」は wp.org 上で配布されているものではない「HBook」という宿泊施設予約の有料プラグインで、使用するにはライセンスコードが必要になりますが、一応当該プラグインへのリンクを張っておきます。
よろしくお願いいたします。
♥ 0Who liked: No user2019年12月1日 4:07 PM #37629解決できて良かったです!
プラグインの情報もありがとうございます。無料版あるかな?と軽くググってみましたがなさそうですね…(TT
トピック閉じます!
♥ 0Who liked: No user -
投稿者投稿
- トピック「singular.php で特定の条件下にてデフォルト以外のテンプレートを呼び出したい」には新しい返信をつけることはできません。