4

woocommerce カスタム検索フォームの作成方法をお聞きしたいです。

私の検索およびフィルター フォームには 3 つのフィールドがあります。

カテゴリ:<select>次のタグを使用して、woocommerce 製品カテゴリをカスタム検索 HTML フォームに取り込むことができました。

<?php 
$catTerms = get_terms('product_cat', array('hide_empty' => 0, 'orderby' => 'ASC', 'exclude' => '17,77'));
foreach($catTerms as $catTerm) : ?>
    <option value="<?php echo $catTerm->slug; ?>"><?php echo $catTerm->name; ?></option>
<?php endforeach; ?>

フィルター条件: (ドロップダウン メニュー) 作成者別:

woo_add_custom_general_fields_save()テーマのfunctions.php,作品の機能を適切に使用して、woocommerceに追加のフィールドを追加しました。

注: これは通常、wordpress でメタデータを追加するために使用する「カスタム フィールド」ではありませんが、以下のコードは、商品データ > 一般 (woocommerce) にフィールドを追加するためのものです。

function woo_add_custom_general_fields_save($post_id)
{
    $woocommerce_textinput = $_POST['_book_author'];
    if( !empty( $woocommerce_textinput ) )
    update_post_meta( $post_id, '_book_author', esc_html( $woocommerce_textinput ) );
}

タイトル別:

を使用してこのフィルターを使用することができましたhttp://www.example.com/wp-root/woocommerce-product-page/?s=searchproducttitle

入力テキスト フィールド:

これは、ユーザーがキーワードで検索するためのものです。

したがって、これは私の完全なカスタム html 検索フォームです。

<form action="<?php echo site_url(); ?>/pm-bookstore/" method="GET">

<select name="">
    <?php $catTerms = get_terms('product_cat', array('hide_empty' => 0, 'orderby' => 'ASC', 'exclude' => '17,77')); ?>
        <?php foreach($catTerms as $catTerm) : ?>
        <option value="<?php echo $catTerm->slug; ?>"><?php echo $catTerm->name; ?></option>
    <?php endforeach; ?>                                            
</select>

<select name="">
    <option value="">By author</option>
    <option value="">By title</option>
</select>

<input type="text" placeholder="Search Book by Title, Author, ISBN..." name="s">
<button class="fa fa-search" type="submit"></button>

</form>

検索パラメーターについては、それらすべてをプルできると期待しています。しかし、私は ?s パラメーターしか使用できません (これは製品タイトルのみです)。

product_cat、 、などの別のパラメーターを使用してみtag_IDましたが、成功しませんでした。

現時点では、私は使用することしかできません

http://www.example.com/wp-root/woocommerce-product-page/?s=searchproducttitle

私の期待される結果は次のとおりです。

http://www.example.com/wp-root/woocommerce-product-page/?s=searchproducttitle&category=categoryslug&author=作者名

また

http://www.example.com/wp-root/woocommerce-product-page/?s=searchproducttitle&category=categoryslug

この検索パラメーターを woocommerce 検索で機能させるにはどうすればよいですか?

ありがとうございました。

4

1 に答える 1

1

「pm-bookstore」ページで WP_Query を使用して結果を取得します。

// WP_Query arguments
$args = array (
    'name'                   => 'your title',
    'post_type'              => array( 'product' ),
    'post_status'            => array( 'publish' ),
    'tax_query'              => array(
             'taxonomy' => 'categories',
             'field'    => 'slug',
             'term'     =>  'your category slug'
     ),
    'meta_query'             => array(
        array(
            'key'       => '_book_author',
            'value'     => 'your author name',
            'compare'   => '=',
            'type'      => 'CHAR',
        ),
    ),
);

// The Query
$query = new WP_Query( $args );

私はそれをテストしていませんが、動作するはずです。

于 2016-08-02T13:32:02.643 に答える