۰۹۱۱۲۹۲۱۸۷۶
دوشنبه ۶ تیر ۱۴۰۱

مشکل نمایش محصولات پنهان در کوئری ووکامرس

گاها در برای شما پیش آمده که میخواهید یک محصولی را از دید عموم خارج کنید و یا تنها در صفحات خاص آنرا به نمایش بگذارید . از طرفی یک کوئری ساختید از محصولات ووکامرس که در آن این محصول نمایش داده میشود .

بطور عادی در کوئری های ووکامرسی محصولات پنهان قابل مشاهده هستند . اما چگونه میشود این محصولات را بطور کلی از کوئری ها محو کنیم ؟

اگر شما هم این مشکل را دارید و سریعا میخواهید برطرف گردد  آموزش ما را در ادامه دنبال کنید .

کار خاصی ندارد . کافیست کد زیر را در کوئری خود قرار دهید .

[php]

‘tax_query’ => array(
array(
‘taxonomy’ => ‘product_visibility’,
‘field’ => ‘name’,
‘terms’ => ‘exclude-from-catalog’,
‘operator’ => ‘NOT IN’,
),
),

[/php]

بطور مثال کوئری زیر را ببینید .

[php]
<?php
$custom_field_query = new WP_Query(array(
‘post_type’ => ‘product’,
‘order’ => ‘descending’,
‘posts_per_page’ => ‘6’,
‘tax_query’ => array(
array(
‘taxonomy’ => ‘product_visibility’,
‘field’ => ‘name’,
‘terms’ => ‘exclude-from-catalog’,
‘operator’ => ‘NOT IN’,
),
),
‘paged’ => (get_query_var(‘paged’)) ? get_query_var(‘paged’) : 1
));
?>
<?php if($custom_field_query->have_posts()) :
while($custom_field_query->have_posts()) : $custom_field_query->the_post();?>
<div class="new-product-style">
<ul>
<li>
<a class="new-product-style-title" href="<?php the_permalink(); ?>" alt="<?php the_title(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a>
</li>
</ul>
</div>
<?php endwhile;endif;?>
<?php wp_reset_query(); ?>

[/php]

کد مذکور صرفا برای کوئری های عادی ووکامرس بود .

حال اگر میخاهید در بخش جستجو این محصولات پنهان باشد و دیده نشود کد زیر را در function.php قالبتون قرار بدید .
[php]

if ( ! function_exists( ‘hidden_search_query_fix’ ) ) {
function hidden_search_query_fix( $query = false ) {
if ( ! is_admin() && is_search() ) {
$query->set( ‘tax_query’, array(
‘relation’ => ‘OR’,
array(
‘taxonomy’ => ‘product_visibility’,
‘field’ => ‘name’,
‘terms’ => ‘exclude-from-catalog’,
‘operator’ => ‘NOT IN’,
),
array(
‘taxonomy’ => ‘product_visibility’,
‘field’ => ‘name’,
‘terms’ => ‘exclude-from-catalog’,
‘operator’ => ‘!=’,
),
));
}
}
}
add_action( ‘pre_get_posts’, ‘hidden_search_query_fix’ );

[/php]

امیدوارم ار پست امروزمون هم استفاده های لازم رو برده باشید . در پناه خدا موفق و پیروز باشید .

 

question