解決済検索結果にカスタム投稿記事一覧を表示したい

フォーラム 使い方全般 【解決済】検索結果にカスタム投稿記事一覧を表示したい

  • このトピックには5件の返信、2人の参加者があり、最後にsagawaにより3年、 1ヶ月前に更新されました。
6件の投稿を表示中 - 1 - 6件目 (全6件中)
  • 投稿者
    投稿
  • #95163
    kennykenny
    参加者

    ————-
    WordPress のバージョン: 5.8.1
    Welcart のバージョン: 2.3.1
    PHP のバージョン:7.4
    Welcart専用の拡張プラグインとバージョン:WCEX DL Seller3.1.3、WCEX SKU Select2.2.1
    ご利用のテーマ:WelcartBasic
    サーバー【重要】:エックスサーバー/ビジネスプラン
    ————-

    カスタム投稿記事で商品案内ページを作成し、カートに入れるボタンをショートコードで配置しています。
    キーワード検索した際に、このカスタム投稿記事一覧を検索結果として表示したいのですが、検索結果に表示されません。。

    まずWelcartBasicのよくあるお問い合わせにある通り、商品以外も検索されるようにする方法を確認しました。
    https://www.welcart.com/docs/themes/welcart_basic/faq.html

    次に下記のサイトを参考に、検索結果一覧にカスタム投稿を含めるようにしました。
    https://cravelweb.com/webdesign/wp-customize/post-3803

    以上のことからfunction.phpに書き込んだのは下記のとおりです。

    //検索対象をリセット
    add_action( 'after_setup_theme', 'my_remove_search' );
    function my_remove_search() {
        remove_action( 'pre_get_posts', 'welcart_basic_query' );
    }
    
    //検索結果にカスタム投稿(custom)含める
    function include_custom_post_search($query) {
        if ($query->is_search() && $query->is_main_query() && ! is_admin()) {
            $query->set('post_type', array('post', 'page', 'custom'));
        }
        return $query;
    }
    add_filter('pre_get_posts', 'include_custom_post_search' , 10 , 1);

    search.php には下記のように書き込んでいます。

    <?php if( have_posts() ):while( have_posts() ):the_post(); ?>
    <?php if( usces_is_item() ): ?>
    <?php else: ?>
    
    ~ 商品以外のカスタム投稿記事ページ ~
    
    <?php endif; ?>
    <?php endwhile; else: ?>
      <p><?php echo __('No posts found.', 'usces'); ?></p>
    <?php endif; ?>

    検索窓は下記のようにしています。

    <form method="get" id="testSearch" action="<?php echo home_url('/'); ?>">
    <input type="text" name="s" id="testSearchInput" value="<?php the_search_query(); ?>" placeholder="キーワード検索" />
    <input type="hidden" name="post_type" value="custom">
    <input type="submit" value="search" accesskey="f" />
    </form>

    何かヒントだけでもいただけると助かります。m(_ _)m

    #95172
    sagawa
    キーマスター

    こんにちは。

    記載のコードで取得できましたので、
    ・カスタム投稿のスラッグが正しくない
    ・search.phpの記述により表示されない
    可能性が高いのではないかと思います。

    なお、今回は検索結果一覧にカスタム投稿を含んでいるかどうかの動作確認のため、3つめのサーチボックスは編集していない状態です。

    #95175
    sagawa
    キーマスター

    追記です。

    もし、プラグインを利用してカスタム投稿を追加しているのであれば、プラグインの設定で「検索から除外する」といった設定歩かないか、また、適用されていないかをご確認ください。

    #95176
    kennykenny
    参加者

    ご回答いただき、ありがとうございます。

    ・カスタム投稿はプラグイン「Custom Post Type UI」を使っていて、「投稿タイプスラッグ」に誤りはありませんでした。
    ・プラグインの設定で、「検索から除外」は「偽」になっていました。(これは試しに真に切り替えても結果は変わりませんでした)
    ・’post’, ‘page’, ‘custom’を対象としていますが、「投稿」記事だけ検索結果に表示して、カスタム投稿は表示されません。
    ・たくさんヒットするキーワードで検索すると、白紙のままページャーは出てくるので、拾えているけど表示できていないかと思い、search.php のループ内に「<p>テスト</p>」のように文字を置いても表示されませんでした。

    現状、こんな感じですが、引き続きいろいろ試してみます。。
    また何かヒントいただけると大変助かります。m(_ _)m

    #95185
    kennykenny
    参加者

    いろいろやってみましたがうまくいかず、結局「WP Extended Search」というプラグインに頼ることにしました。
    <参考>https://fractales.jp/wordpress/102/
    こちらで思い通りの結果が得られましたので、解決済みということでお願いします。
    ありがとうございました。

    #95189
    sagawa
    キーマスター

    こんにちは。

    ご報告と情報のご提供ありがとうございます。

6件の投稿を表示中 - 1 - 6件目 (全6件中)
  • このトピックに返信するにはログインが必要です。