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

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

جستجو بر اساس برچسب در وردپرس – در این آموزش با استفاده از کلاس 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; ?>


دانلود پروژه جستجو بر اساس برچسب

ارسال نظر