جستجو بر اساس برچسب در وردپرس
جستجو بر اساس برچسب در وردپرس – در این آموزش با استفاده از کلاس 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; ?>
لیست نظرات
سلام من میخواستم با توجه به قالب حال حاظر وقتی در قسمت جستجوی سایت سرچ میکنیم تگ های مربوطه رو هم کنار پست ها بیاره این کدهایی که بالا نوشتید رو کجای قالب باید قرار بدیم ؟ من اصلا برنامه نویسی بلد نیستم لطفا ساده بگید که چه کنم؟
سلام ، اگر برنامه نویسی بلد نیستید امکان پذیر نیست .