新しくテンプレートを作成した場合

0
いいねをした人: 居ません
  • このトピックには3件の返信、2人の参加者があり、最後にhosifulukoにより3年、 3ヶ月前に更新されました。
4件の投稿を表示中 - 1 - 4件目 (全4件中)
  • 投稿者
    投稿
  • #84072
    hosifuluko
    閲覧者
    13

    【お使いの Snow Monkey のバージョン】バージョン: 15.0.0-beta3
    【お使いの Snow Monkey Blocks のバージョン】バージョン 12.0.0-beta1
    【お使いの Snow Monkey Editor のバージョン】バージョン 6.0.0
    【お使いのブラウザ】Chrome
    【当該サイトのURL】

     

    ### 発生している問題

    カスタム投稿ごとに検索できるように検索窓をショートコードで呼びだしたく、以下のような設定をしました。

    「themes」→「snow-monkey」のフォルダにsearchcustom_2.phpsearchcustom.phpという名前の2つテンプレートを追加したのですが、

    snow-monkeyのテーマ直下に追加テンプレートをそのまま入れるのはNGでしょうか?

    (アップグレードの際に消えてしまったりする場所でしょうか?)

     

    2つテンプレートを追加をして希望の実装自体はできたのですが、

    同様のことを、my-snow-monkey.phpのみで実装することは可能でしょうか?

     

     

    ### 試したこと

    以下の記事を見てみたのですが、書かれているコードを追加するだけでいいのかわからず、フォーラムに投稿いたしましたm(__)m

    My Snow Monkey でテンプレートの追加/上書きをできるようにする(テンプレートルートの追加)

     

     

    ### 実現したいこと

    以下は、実装についてです。

    ・カスタム投稿「news」「blog」の2タイプを作成しまして、「news」のみの記事検索、「blog」のみの記事検索できるようにしたかったんですが、WordPressの「検索ブロック」では全ての記事がひっかかってしまうので参考記事を見ながら、searchcustom_2.phpsearchcustom.phpと2つテンプレートを作成しテーマ直下に保存しました。

    (PHPの知識が乏しく、2つテンプレートを作ることでできたのですがもしかしたら1つでよかったのかもしれません..)

    参考記事:

    [WordPress] 絞り込み検索をプラグインなしで実装する(ショートコード使用)

    https://kyotablog.net/wordpress-search-custom/

    【現状】

    ●my-snow-monkey.phpに記載

    function search_custom_func_1() {
    ob_start();
    get_template_part('searchcustom');
    return ob_get_clean();
    }
    add_shortcode('searchcustom', 'search_custom_func_1');
    
    function search_custom_func_2() {
    ob_start();
    get_template_part('searchcustom_2');
    return ob_get_clean();
    }
    add_shortcode('searchcustom_2', 'search_custom_func_2');

    ●searchcustom_2.phpに記載(searchcustom.phpも同じ内容)

    
    
    <form class="search-form" role="search" action="<?php echo home_url( '/' ); ?>" method="get">
    <label><label>
    <!--?php echo _x( 'Search for:', 'label' ) ?-->
    <input class="search-field" title="<?php echo esc_attr_x( 'Search for:', 'label' ) ?>" name="s" type="search" value="<?php echo get_search_query() ?>" placeholder="<?php echo esc_attr_x( '', 'placeholder' ) ?>" /></label></label><input name="post_type" type="hidden" value="article" />
    
    <input class="search-submit" type="submit" value="<?php echo esc_attr_x( 'Search', 'submit button' ) ?>" /></form>
    0
    いいねをした人: 居ません
    #84235
    hosifuluko
    閲覧者
    13

    こちら解決いたしました!

    (ショートコードで新規テンプレート呼び出せるようにしたいのが希望の実装)

     

    以下のマニュアルが該当していたのですが、どうやってディレクトリを作成したらいいのかが理解できていなかったので

    My Snow Monkey でテンプレートの追加/上書きをできるようにする(テンプレートルートの追加)

    以下のご質問でディレクトリの作成方法を理解することができ、実装できました。

    グローバルナビメニューの上部に、ロゴやボタンやテキストなどを横並びで配置したい

     

    同じ質問をフォーラムで発見いたしまして、

    My Snow Monkeyでオリジナルのテンプレートパーツの読み込み方法を知りたい

    子テーマで作るのがアップデートで安心ということで

    子テーマでの実装に変更しました。

    子テーマのつくり方

     

    0
    いいねをした人: 居ません
    #84391
    アバター画像キタジマ タカシ
    参加者
    2421

    snow-monkeyのテーマ直下に追加テンプレートをそのまま入れるのはNGでしょうか?

    (アップグレードの際に消えてしまったりする場所でしょうか?)

    そのとおりです。Snow Monkey に限らず、すべての配布テーマ・配布プラグイン、それと WordPress コアは直接ファイルを追加したり編集するのは NG です。

    以下の記事を見てみたのですが、書かれているコードを追加するだけでいいのかわからず、フォーラムに投稿いたしましたm(__)m

    その記事の方法でもできますが、個人的には

    – WordPress あるいはコードにあまり詳しくない場合で、ファイルの追加が必要な場合は子テーマを使用する
    – 今回の場合で言えばファイルの追加をせずに実装したほうがメンテナンスが簡単そう

    と思います。

    function search_custom_func_1() {
      ob_start();
      get_template_part('searchcustom');
      return ob_get_clean();
    }
    add_shortcode('searchcustom', 'search_custom_func_1');

    というコードでフォームを読み込まれていますが、

    function search_custom_func_1() {
      ob_start();
      ?>
      <form class="search-form" role="search" action="<?php echo home_url( '/' ); ?>" method="get">
        <label>
          <!--?php echo _x( 'Search for:', 'label' ) ?-->
          <input class="search-field" title="<?php echo esc_attr_x( 'Search for:', 'label' ) ?>" name="s" type="search" value="<?php echo get_search_query() ?>" placeholder="<?php echo esc_attr_x( '', 'placeholder' ) ?>" />
        </label>
        <input name="post_type" type="hidden" value="article" />
    
        <input class="search-submit" type="submit" value="<?php echo esc_attr_x( 'Search', 'submit button' ) ?>" />
      </form>
      <?php
      return ob_get_clean();
    }
    add_shortcode('searchcustom', 'search_custom_func_1');

    のようにすればファイルを追加せずとも表示できるのではと思います。

    0
    いいねをした人: 居ません
    #84502
    hosifuluko
    閲覧者
    13

    なんと!ありがとうございます…!!

    いただいたコードをmy-snow-monkey.phpに追加しましたら同様の実装ができましたm(__)m

    別のテンプレートを呼び出さずともmy-snow-monkey.phpに検索枠のスタイルを入れることができたんですね…

    子テーマ、ショートコードの呼び出しなどはじめてだらけだったんですが
    NGなこともわかり、勉強になりました…ありがとうございました!!!

    トピック閉じます^^!!

    1
    いいねをした人:
4件の投稿を表示中 - 1 - 4件目 (全4件中)
  • トピック「新しくテンプレートを作成した場合」には新しい返信をつけることはできません。

ドキュメント

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

ドキュメント

フォーラム

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

サポートフォーラム

よくあるご質問

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

よくあるご質問

お問い合わせ

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

お問い合わせ

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