- このトピックには3件の返信、2人の参加者があり、最後にhosifulukoにより3年、 3ヶ月前に更新されました。
-
投稿者投稿
-
2021年8月12日 3:33 PM #84072
【お使いの 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.php
、searchcustom.php
という名前の2つテンプレートを追加したのですが、snow-monkeyのテーマ直下に追加テンプレートをそのまま入れるのはNGでしょうか?
(アップグレードの際に消えてしまったりする場所でしょうか?)
2つテンプレートを追加をして希望の実装自体はできたのですが、
同様のことを、
my-snow-monkey.php
のみで実装することは可能でしょうか?### 試したこと
以下の記事を見てみたのですが、書かれているコードを追加するだけでいいのかわからず、フォーラムに投稿いたしましたm(__)m
My Snow Monkey でテンプレートの追加/上書きをできるようにする(テンプレートルートの追加)
### 実現したいこと
以下は、実装についてです。
・カスタム投稿「news」「blog」の2タイプを作成しまして、「news」のみの記事検索、「blog」のみの記事検索できるようにしたかったんですが、WordPressの「検索ブロック」では全ての記事がひっかかってしまうので参考記事を見ながら、
searchcustom_2.php
、searchcustom.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いいねをした人: 居ません2021年8月14日 12:10 AM #84235こちら解決いたしました!
(ショートコードで新規テンプレート呼び出せるようにしたいのが希望の実装)
以下のマニュアルが該当していたのですが、どうやってディレクトリを作成したらいいのかが理解できていなかったので
My Snow Monkey でテンプレートの追加/上書きをできるようにする(テンプレートルートの追加)
以下のご質問でディレクトリの作成方法を理解することができ、実装できました。
グローバルナビメニューの上部に、ロゴやボタンやテキストなどを横並びで配置したい
同じ質問をフォーラムで発見いたしまして、
My Snow Monkeyでオリジナルのテンプレートパーツの読み込み方法を知りたい
子テーマで作るのがアップデートで安心ということで
子テーマでの実装に変更しました。
♥ 0いいねをした人: 居ません2021年8月16日 8:39 AM #84391snow-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いいねをした人: 居ません2021年8月16日 11:27 PM #84502 -
投稿者投稿
- トピック「新しくテンプレートを作成した場合」には新しい返信をつけることはできません。