空(入力なし)の検索結果をカスタマイズしたい

0
Who liked: No user
8件の投稿を表示中 - 1 - 8件目 (全8件中)
  • 投稿者
    投稿
  • #54095
    Nobuhito Ohigashi
    参加者
    10

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

    【お使いの Snow Monkey のバージョン】バージョン: 10.10.7
    【お使いのブラウザ】Chrome
    【当該サイトのURL】mono96.jp

    ==

    空のキーワードで検索した時に検索結果が表示されてしまうので、

    「検索キーワードが未入力です」と、表示するようにカスタマイズしたく、my-snowmonkey にどう記述すれば良いのでしょうか?

    参考

    0
    Who liked: No user
    #54099
    Kmical Lights
    閲覧者
    234

    下記のコードは、検索一覧のコンテンツ部分を差し替える一例です。ご参考にどうぞ。

    add_filter(
    	'snow_monkey_template_part_render',
    	function( $html, $slug, $name, $vars ) {
    // 検索ページの時に差し替える為の条件式
    		if ( is_search() && 'templates/view/archive' === $slug && 'search' === $name ) {
    // ここから参考ページのように設定
    			if ( empty( get_search_query() ) ) { // 検索ワードが空なら
    				$html = '<div class="c-entry"><p>検索キーワードが未入力です。</div>'; // 表示するhtmlを代入
    			}
    		}
    		return $html;
    	}
    	,
    	10,
    	4
    );

    サイドバーなども表示されなくなるかもしれません。
    その際は、htmlをDOM操作する形で適度に書き換えるのがベストと思います。

    また、検索結果と言うのがページタイトルとパンくずでふさわしくない形になるので、それらも差し替えた方が良いのであれば、下記のコードを参考にしてください。

    add_filter(
    	'document_title_parts',
    	function($title_parts) {
    		if ( is_search() && empty( get_search_query() ) ) {
    			$title_parts['title'] = '検索キーワードが未入力です';// ページタイトルを変える
    		}
    		return $title_parts;
    	},
    	9,
    	1
    );
    
    add_filter( 'snow_monkey_breadcrumbs',
    	function( $items ) {
    		if ( is_search() && empty( get_search_query() ) ) {
    			$items[count( $items ) - 1]['title'] = '検索キーワードが未入力です';
    		}
    		return $items;
    	},
    	9,
    	1
    );
    1
    Who liked: No user
    #54102
    アバター画像キタジマ タカシ
    参加者
    2421

    これ、カスタマイズでなくデフォルトでそのような挙動にしたほうがいい気がするのですがどうでしょうね?

    0
    Who liked: No user
    #54104
    Kmical Lights
    閲覧者
    234

    @キタジマタカシ

    その動きは、基本的にどっちが正しいのかですね。
    WordPress のサイトって URL に ?s= で検索ページになりますが、空文字の時も動作は併用していますから、空文字だろうと検索一覧を表示するのが正しい動きの気もします。
    公式ディレクトリにあるテーマでは、ほとんどのテーマでは一覧が出る動作をしているのですが、
    一部のテーマで”検索ワードが…”と空文字チェックをしているテーマもあります。

    とあるシステムでは、空文字であっても検索結果を一覧で出す理由として、全記事をクロールさせる為にSEO的に強くなると書かれてました。ご参考までに。

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

    一致する検索結果がないときの表示もテーマ側で用意しないといけないから、空文字のときの表示を用意するのも別におかしくはないと思うんですよね。WordPress 的にはというより、実際に検索する人がどう感じるかと考えたときに、空文字だったらなにもでないほうが違和感ないんじゃないかなと思いまして。

    空文字で検索するということを想定していなかったので特に表示をつくっていなかったんですけど、検索する人が「未入力ですよ」とだしたほうが違和感がないなら、Snow Monkey 的にはそういう表示にしたほうが良いかなと思います。

    0
    Who liked: No user
    #54138
    Kmical Lights
    閲覧者
    234

    一致する検索結果がないときの表示もテーマ側で用意しないといけないから、

    Snow Monkey 的にはそういう表示にしたほうが良いかなと思います。

    なるほどー。テーマ側で用意していないと検索結果が出ると言う感じです?
    それならきちんと用意される方が良いと思います。

    しかし、そうされる場合でも、”今までと同じように一覧を出すかどうか”ってする事って言うのが、フックなりで可能だとめっちゃ助かります。

    現場にも聞いたら「本当は”未入力です”エラーを出してくれる方が良いんだよね」と言う声もあるんですが、
    T●Dのテーマとか他のテーマでは空文字時に検索結果を出してるのが多いようで、そう言うテーマを元々使用していた現場では「空文字でも検索される事は多いので一覧のままが良い」と言うのもあります。

    某テーマはわざわざそう言う細かい事を全然してないし、テーマ側で用意しないといけない事を用意してないだけなんだろなーと今は思ってますが。

    「閲覧するユーザーが、空文字で全記事が出ると思っているか」「全記事表示しようとしたらエラーが出たからと言って離脱されるようになるのは一番困る」と。……現場ってめんどくさいですね(笑)

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

    @Kmical Lights さん

    しかし、そうされる場合でも、”今までと同じように一覧を出すかどうか”ってする事って言うのが、フックなりで可能だとめっちゃ助かります。

    要は下記に空文字列かどうかの判定を追加して、呼びだすビューを差し替えることになるので、空文字検索でもそのビューにいかないように snow_monkey_view フックで書き換えれば大丈夫だと思います。

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

    Snow Monkey v11 から、「検索キーワードが未入力です」の表示になるように変更しました!

    2
    Who liked: No user
8件の投稿を表示中 - 1 - 8件目 (全8件中)
  • トピック「空(入力なし)の検索結果をカスタマイズしたい」には新しい返信をつけることはできません。

ドキュメント

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

ドキュメント

フォーラム

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

サポートフォーラム

よくあるご質問

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

よくあるご質問

お問い合わせ

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

お問い合わせ

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