商品アーカイブページには、デフォルトで特定の属性値に対応する商品を表示したいと考えています。フィルタデフォルトで商品属性値を持つWoocommerceのアーカイブページ
例
属性:pa_condition
条件:新品、中古、見切り
私が店を開いたときにのみ、新製品を見たいのですが。
しかし、2つの言語があります。だから、条件は属性IDに適用する必要があります。
これはどのように行うことができますか?
商品アーカイブページには、デフォルトで特定の属性値に対応する商品を表示したいと考えています。フィルタデフォルトで商品属性値を持つWoocommerceのアーカイブページ
例
属性:pa_condition
条件:新品、中古、見切り
私が店を開いたときにのみ、新製品を見たいのですが。
しかし、2つの言語があります。だから、条件は属性IDに適用する必要があります。
これはどのように行うことができますか?
更新:あなたはこのフック機能を試すことができます。
add_filter('woocommerce_product_query_tax_query', 'custom_product_query_tax_query', 10, 2);
function custom_product_query_tax_query($tax_query, $query) {
if(is_admin()) return $tax_query;
// Define HERE the product attribute and the terms
$taxonomy = 'pa_condition';
$terms = array('New', 'Used', 'Closeout'); // Term names
// Add your criteria
$tax_query[] = array(
'taxonomy' => $taxonomy,
'field' => 'name', // Or 'slug' or 'term_id'
'terms' => $terms,
);
return $tax_query;
}
コードは、任意のプラグインファイルでもfunction.phpのアクティブな子テーマ(またはテーマ)のファイルかになります。
テスト済みで動作します。
しかし、あなたはその翻訳された用語の問合せの2 $tax_query[]
配列にそれらを追加することが義務付けされなければならないので、私は、用語の翻訳についてはよく分からないです...
ありがとう、Loïc。 –
"選択した条件に該当する製品がありません"を返します。私はちょうど "ここで定義する製品の属性と用語"を削除しました。私は配列のすべての用語を残すか、単に 'New'を残す必要があるかどうかはわかりません。 'field' => –
の '名前'を置き換えなければならないかどうか分かりません。 'field' => 'names'はそのままですか?名前をNewに置き換える必要がありますか? –
何を試しましたか、あなたのコードは何ですか?あなたが書いたことから、どこに問題があるのかは明らかではありません。 – Flummox