WordPressで検索語と結果数を表示する

このチュートリアルでは、検索ページに簡単な関数を追加して、検索語と結果数を表示する方法を共有します。この機能は、ユーザーからのメールによる特別なリクエストでした。トピックをカバーしてほしい場合は、提案を自由に行ってください

WordPressの検索で検索語と結果数を表示する

テーマのsearch.phpファイルを開き、次のコードを追加します。

<h2 class="pagetitle">Search Result for <?php /* Search Count */ $allsearch = new WP_Query("s=$s&showposts=-1"); $key = wp_specialchars($s, 1); $count = $allsearch->post_count; _e(''); _e('<span class="search-terms">'); echo $key; _e('</span>'); _e(' &mdash; '); echo $count . ' '; _e('articles'); wp_reset_query(); ?></h2>

上記のコードは次のように表示されます。

twitterの検索結果 — 15件の記事

テーマのスタイルシートに.search-terms CSSクラスを追加することで、検索語をハイライト表示することもできます。以下に、開始に役立つ簡単なCSSを示します。

.search-terms {
background-color:yellow;
color:blue;
}

これは、検索ページをカスタマイズする際にできるクールなことの1つです。検索結果で検索語をハイライトしたり、WordPress検索にカテゴリ別検索機能を追加したりすることもできます。

出典: Michael Martin

開示:当社のコンテンツは読者によってサポートされています。これは、当社のリンクの一部をクリックすると、当社が手数料を得る可能性があることを意味します。WPBeginnerがどのように資金提供されているか、それがなぜ重要か、そしてどのように私たちをサポートできるかについては、こちらをご覧ください。当社の編集プロセスはこちらです。

究極のWordPressツールキット

無料のツールキットにアクセスしましょう - すべてのプロフェッショナルが持つべきWordPress関連の製品とリソースのコレクションです!

読者とのインタラクション

15 CommentsLeave a Reply

  1. このコードをsidebar.phpファイルで使用できますか?サイドバーに検索語と結果数を表示する必要があるためです。助けてください。

  2. thanks a lot for this snippet! :)

    wp codexによると、wp_specialchars関数は非推奨です。代わりにesc_htmlを使用するように記載されています。

    Regards,
    Marco

    • 次回はコメントを詳しく見てみます。CHADHAYTONはすでに、現在どのように処理できるかについてのリンクを投稿しています。

  3. echo $wp_query->found_posts;
     
    これを検索ページの先頭に追加すると、特定の検索で見つかった投稿数が表示されます。
     
    echo get_search_query();
     
    これは検索語(サイト訪問者が検索ボックスに入力したもの)を表示します。
     
    timer_stop(1);
     
    これは検索の実行にかかった時間を表示します。
     
    これらをすべて合わせると、次のような出力が得られます。
     
    「コーヒー豆」の検索結果は「16」件で、「0.87」秒でした。

  4. わあ。WordPress の検索結果をカウントするのは、それよりもずっと簡単ですね。こちらです:

        global $wp_query;
        $count = sizeof( $wp_query->posts );
        echo"<pre>";
        //var_dump($wp_query);// The WP Query Object
        var_dump($wp_query->posts); // The WP Query Object's 'posts' property (note the plural)
        echo"</pre>";
    

    そのスニペットを検索テンプレートにドロップすると、「$wp_query」変数のプロパティ、特にオブジェクトの「posts」プロパティが出力されます。これは、検索クエリから返された投稿のコレクションを格納する配列であり、それにアクセスすると、PHPの「count()」または「sizeof()」関数を使用してその配列内の投稿数を*カウント*するなど、さまざまなことができます。

    • コードが少し切れています。スニペットをメールで送信して、試して記事にすることはできますか?もちろん、あなたに完全なクレジットが与えられます。

      管理者

    • クリス、

      これはうまくいきません。重要なのは、クエリに一致する結果の総数を調べることであり、現在取得されている数ではありません。ページに「収まる」数よりも多くの結果がある場合、コードはページ上の要素の数しか取得しません。

    • このコードは正しいです。動作しており、彼が指摘している唯一の問題は、別の方法でも実現できるということです。このコードはクライアントのウェブサイトで使用しており、正常に動作しています。

      管理者

  5. 良いアイデアだ。実行が悪かった。
    一体なぜ span タグを翻訳したいんだ??
    そしてお気に入りは:_e(''); は??
    なぜ同じ検索を二度もクエリしたいんだ?
    全く意味が分からない。

    しかし、悪意を持って言っているわけではありません。これは(私の謙虚な意見では)行うべき方法です。


    post_count); ?>

  6. ページ内検索についてはあまり深く考えていませんでした。このようなものは、ページをよりパーソナルにするので素晴らしいです。

返信を残す

コメントを残していただきありがとうございます。すべてのコメントは、当社のコメントポリシーに従ってモデレーションされますので、ご了承ください。メールアドレスは公開されません。名前フィールドにキーワードを使用しないでください。個人的で有意義な会話をしましょう。