特定のカテゴリの「製品」(コース) をページに表示する WooCommerce 要素を挿入しようとしています。
また、この特定のカテゴリのこれらの製品を非表示にする必要があり、期待どおりに機能しました. functions.php 内に aa フィルターを追加したところ、次のようになりました。
/*
* Exclude "packages" category from "Archive Products" on page 811
* Ref. URL: https://docs.woocommerce.com/document/exclude-a-category-from-the-shop-page/
*/
function exclude_category_archive_products( $q ) {
$tax_query = (array) $q->get( 'tax_query' );
$tax_query[] = array(
'taxonomy' => 'product_cat',
'field' => 'slug',
'terms' => array( 'packages' ),
'operator' => 'NOT IN'
);
$q->set( 'tax_query', $tax_query );
}
if( $current_post_id != "811" ) {
add_filter( 'woocommerce_product_query', 'exclude_category_archive_products' );
}
/* END Exclude "packages" category from "Archive Products" on page 811 */
私は反対のことを達成する方法を探しましたが、「今年以降」は何も見つかりませんでした。「IN」または「=」演算子を使用しようとしましたが、機能しませんでした (すべてが表示されます)。
/*
* Display "packages" category only
*/
function show_only_category_in_page( $q ) {
var_dump("It reaches the function");
$tax_query = (array) $q->get( 'tax_query' );
$tax_query[] = array(
'taxonomy' => 'product_cat',
'field' => 'slug',
'terms' => array( 'packages' ),
'operator' => '='
);
$q->set( 'tax_query', $tax_query );
}
if( $current_post_id == "811" ) {
var_dump("It reaches the page");
add_filter( 'woocommerce_product_query', 'show_only_category_in_page' );
}
/* END Display "packages" category only */
前のコードは のみを書き込みますstring(23) "It gets reachs the page"
。私は何を間違っていますか?