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

8件の投稿を表示中 - 1 - 8件目 (全8件中)
  • 投稿者
    投稿
  • #54095
    Nobuhito Ohigashi
    参加者
    5

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

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

    ==

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

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

    参考

    0
    #54099
    Kmical Lights
    参加者
    148

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

    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
    #54102
    キタジマ タカシ
    キーマスター
    346

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

    0
    #54104
    Kmical Lights
    参加者
    148

    @キタジマタカシ

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

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

    0
    #54130
    キタジマ タカシ
    キーマスター
    346

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

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

    0
    #54138
    Kmical Lights
    参加者
    148

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

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

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

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

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

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

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

    0
    #54188
    キタジマ タカシ
    キーマスター
    346

    @Kmical Lights さん

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

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

    1
    #55287
    キタジマ タカシ
    キーマスター
    346

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

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