singular.php で特定の条件下にてデフォルト以外のテンプレートを呼び出したい

0
Who liked: No user
4件の投稿を表示中 - 1 - 4件目 (全4件中)
  • 投稿者
    投稿
  • #37407
    mokeco
    閲覧者
    0

    トピックを新しく立てる方は次の項目も記述してください(要望トピックの場合は不要です)。

    【お使いの 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
    

    というエラーが出てしまいました。
    ほかにももともと書かれていたコードを参考にいろいろ試したりなどしたのですが、基本的に上記エラーが表示されてしまいます。
    この場合、どのようにカスタマイズすれば良いでしょうか?

    0
    Who liked: No user
    #37460
    アバター画像キタジマ タカシ
    参加者
    2421

    「とあるプラグイン」は 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カラムのレイアウトファイルを使い、それ以外の投稿の場合はカスタマイザーで設定されたレイアウトを使用する、ということになります。

    0
    Who liked: No user
    #37480
    mokeco
    閲覧者
    0

    ありがとうございます。
    提示いいただいたコードで、やりたいことを実現できました!
    まだ SnowMonkey を使い始めたばかりですが、カスタマイズについて今後も勉強させていただきます。

    「とあるプラグイン」は wp.org 上で配布されているものではない「HBook」という宿泊施設予約の有料プラグインで、使用するにはライセンスコードが必要になりますが、一応当該プラグインへのリンクを張っておきます。

    よろしくお願いいたします。

    0
    Who liked: No user
    #37629
    アバター画像キタジマ タカシ
    参加者
    2421

    解決できて良かったです!

    プラグインの情報もありがとうございます。無料版あるかな?と軽くググってみましたがなさそうですね…(TT

    トピック閉じます!

    0
    Who liked: No user
4件の投稿を表示中 - 1 - 4件目 (全4件中)
  • トピック「singular.php で特定の条件下にてデフォルト以外のテンプレートを呼び出したい」には新しい返信をつけることはできません。

ドキュメント

Snow Monkey の設定方法やマニュアルを掲載しています。

ドキュメント

フォーラム

Snow Monkey の使い方やカスタマイズについてのご質問・ご要望等はサポートフォーラムで行っています。サポートフォーラムは誰でも閲覧できますが、書き込みできるのは Snow Monkey 購入者のみとなります。

サポートフォーラム

よくあるご質問

Snow Monkey のサービスについて不明な点がある場合は、まずはよくあるご質問をご確認ください。

よくあるご質問

お問い合わせ

よくあるご質問を見ても解決しなかった場合、試用版の申請については問い合わせフォームからお願いいたします。

お問い合わせ

Snow Monkey は Gutenberg ブロックエディターに対応した 100%GPL の WordPress テーマです。拡張性を意識した開発をおこなっており、カスタマイザーとブロックでスピーディーにサイトを立ち上げるだけでなく、CSS やフックを駆使した高度なカスタマイズにも柔軟に対応できます。