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

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

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

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

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

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

[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]

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

 

لطفا دیدگاه خود را درباره این نوشته برای ما ارسال کنید

  1. vahid گفت:

    سلام. وقت بخیر
    من تو فروشگاهم یکسری محصول ساختم و قابلیت دیدن کاتالوگ رو روی «پنهان» قرار دادم، چون میخوام تو سایت نمایش داده نشه ولی تو بعضی محصولات متغیر ازشون استفاده کنم.

    اما وقتی از قسمت جستجو سرچشون میکنم بالا میاره و قابل نمایش هست. جستجوی سایتم هم AJax هستش.
    کدی که بالا گذاشته بودید هم در انتهای فایل Function.php قالب کپی کردم ولی بازهم تغییری نکرد.

    اگه امکان داره راهنمایی بفرمایید.
    باتشکر

    • یوسف پور امینیان گفت:

      عرض ادب

      مشکل مکور مربوط به فیلتر جستجو یا سرچ قالبتون هست .
      باید بگردید در کدنویسی هاش اپر اوپن سورس باشه ، کد هایی که ذکر شد رو جایگزین کد های فعلی کنید

      با تشکر

question