جستجو بر اساس برچسب در وردپرس

جستجو بر اساس برچسب در وردپرس – در این آموزش با استفاده از کلاس WP_Query می توانیم جستجو را بر اساس برچسب نمایش دهیم وردپرس به طور پیشفرض کلمه جستجو شده را در عنوان و محتوا جستجو می کند .
به طور کلی در taxonomy ها نمی گردد .
بنابراین کلمه را در 2 ، taxonomy پیشفرض یعنی tag و category جستجو نمی کند .
کار با کلاس WP_Query برای جستجو بر اساس برچسب
ابتدا باید با استفاده از تابع get_search_query کلمه جستجو شده را پیدا کنیم .
$search_query_var = get_search_query();
حال باید آرگومان ها را برای کلاس WP_Query در یک آرایه ذخیره کرده و وارد کنیم .
$tag_query_args = array( 'post_type' => 'post', 'tax_query' => array( array( 'taxonomy' => 'post_tag', 'field' => 'name', 'terms' => $search_query_var, ), ), );
از WP_Query یک آبجکت می سازیم و آرگومان را می دهیم .
$search_query = new WP_Query($tag_query_args);
اما مشکلی که وجود دارد فقط کلمه را در برچسب مطالب جستجو می کند و دیگر در عنوان و بدنه مطلب جستجو نمی کند .
برای حل این مشکل کافی است که این کد را هم بعد از search_query$ اضافه کنید .
if (!$search_query->have_posts()) $search_query = new WP_Query(array('post_type' => 'post', 's' => $search_query_var));
در پایان هم حلقه while برای لیست کردن مطالب پیدا شده :
<?php if ($search_query->have_posts()) : ?> <?php while ($search_query->have_posts()) : $search_query->the_post() ?> <h2><?php the_title() ?></h2> <?php endwhile; ?> <?php else : echo 'مطلبی یافت نشد ):';?> <?php endif; ?>
ارسال نظر