Plugin bộ lọc hộp kiểm WordPress

Như chúng ta đã thảo luận về vấn đề này trong các bài đăng trước đó rằng trong WordPress, đôi khi chúng ta cần lọc các bài đăng. Chúng tôi đã thực hiện với các bài đăng bộ lọc theo phân loại. Bạn có thể xem hướng dẫn đó từ đây. Trong hướng dẫn này, chúng ta sẽ tiếp tục làm việc với bộ lọc. Chúng tôi sẽ “lọc bài đăng theo hộp kiểm trong WordPress”. Phần quan trọng nhất là chúng tôi sẽ tạo hộp kiểm bằng cách sử dụng plugin ACF. Nếu bạn đã quen thuộc với plugin ACF thì bạn có thể tải xuống plugin từ kho lưu trữ WordPress cho Plugin ACF

Bây giờ hãy làm theo các bước sau

Bước 1 – Tạo hộp kiểm

Trước hết, hãy tạo trường có hộp kiểm loại bằng cách sử dụng plugin ACF. Chúng tôi sẽ sử dụng những dữ liệu hộp kiểm này trong quá trình lọc

Bước 2 – Kết xuất hộp kiểm trên giao diện người dùng

Chèn mã dưới đây vào tệp mẫu của bạn. Mã này sẽ gọi hộp kiểm ở giao diện người dùng mà chúng tôi đã tạo bằng plugin ACF

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

<div class="form-group col>

<nhãn lớp="col-md- for="region">Region</label>

    <div class="col-md-10">

     <div class="col-md-12">

         ?php

$region = get_field_object('field_5594575c5d4ed'<);

$region_name = $region['choices'];

//print_r($tên_vùng);

?>

foreach ($region_name as $region_value)

{

?>

<div class="col-sm->

<đầu vào loại="hộp kiểm" name="post_region[]" id="post_region" class="checkboxes" value=" echo $region_value; ?>"> echo $region_value; ?>

</div>

}

?>

</div>

    </div>

</div>

Bước 3 – Gọi ajax

Chúng ta đã hoàn thành phần xem. Với đoạn mã trên, mẫu của bạn đã hoàn thành với giao diện người dùng. Bước tiếp theo là làm cho mã hoạt động bằng cách gọi ajax bằng jquery. Sao chép và dán đoạn mã sau vào tệp footer.php

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

Bước 4 – Tạo gọi lại ajax

Trong đoạn mã trên, chúng ta đã gọi một hàm ajax là “get_keyword_data”. Bây giờ chúng ta phải biến chức năng đó thành tệp function.php trong thư mục chủ đề của bạn

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

add_action( 'wp_ajax_get_keyword_data', 'get_keyword_data' );

add_action( 'wp_ajax_nopriv_get_keyword_data', 'get_keyword_data' );

 

hàm get_keyword_data()

{

trích xuất($_POST);

$sered_country=$sered_country; //get selected country

$search_array = $search_array; // get Arrray for region , Opp type and eligiblity

/*  Tạo phần tử mảng cho Vùng */

$region_sel=$searched_array['region'];

$tmp_arr_region = mảng();

    foreach ($region_sel as $value11)

     {

     $tmp_arr_region[] = $value11;

     }

    $khu vực=nổ tung(',',$tmp_arr_region);

$values_region = explode(',',$region);

$tmp_region  = mảng();

foreach ($values_region as $value12)

{

$tmp_region[] = array('key'=>'post_region','value'=>$value12,'compare'=> 'LIKE');

}

$checkbox_array= array();

$checkbox_array['khu vực']=$region_sel; // Selected Checkbox Region

$checkbox_array['opp_type']=$opp_type; // Selected Checkbox Opportunity type

$checkbox_array['đủ điều kiện']=$eligiblity; // Selected Checkbox  Eligiblity

$checkbox_array['country']=$values_country; // Selected Checkbox selected_country

$danh sách = mới WP_Query(array(

'post_type' => 'opportunity',

        'post_status' => 'publish'<,

's' => $từ khóa, //keyword search

'so sánh' => 'THÍCH',

        'đơn đặt hàng' => 'ASC'<,

'orderby' => 'meta_value',

'meta_query' => mảng(

'quan hệ' => 'VÀ',

                   $tmp_region, //Tìm kiếm hộp kiểm khu vực<

$tmp_Opp_type, //Tìm kiếm hộp kiểm Opp_type

$tmp_eligibility, //Tìm kiếm hộp kiểm đủ điều kiện

$tmp_country, //Tìm kiếm hộp kiểm quốc gia

),

)

);

while( $liệt kê->have_posts() ) : $danh sách->the_post();

toàn cầu $bài đăng;

$post_id = $danh sách->post->ID;

$type_cat = get_field('opportunity_type_category', $listing->post->ID, true);

        $tên_khu vực = get_field('post_region', $listing->post->ID, true);

$eligibility_name = get_field('eligibility_student_level', $listing->post->ID, true);

        $quốc gia = get_field('country', $listing->post->ID, true);

$listing_array=array();

$listing_array['khu vực']=$region_name;

$listing_array['opp_type']=$type_cat;

$listing_array['đủ điều kiện']=$eligibility_name;

$listing_array['country']=$country; // Selected Checkbox selected_country

////////////////////////// Kiểm tra xem khoảng trống (lựa chọn hộp kiểm) có bằng khoảng trống 1 (Kết quả truy vấn meta) ////////

 

if (count(array_diff($checkbox_array['region'],$listing_array['region'])) == 0 && count(array_diff($listing_array['region'],$checkbox_array['region'])) == 0 &&

count(array_diff($checkbox_array['opp_type'],$listing_array['opp_type'])) == 0 && count(array_diff($listing_array['opp_type'],$checkbox_array['opp_type'])) == 0 &&

count(array_diff($checkbox_array['eligiblity'],$listing_array['eligiblity'])) == 0 && count(array_diff($listing_array['eligiblity'],$checkbox_array['eligiblity']))== 0 &&

count(array_diff($checkbox_array['country'],$listing_array['country'])) == 0 && count(array_diff($listing_array['country'],$checkbox_array['country']))== 0)

{

the_title();

}

cuối;                  

}

Lọc bài đăng theo hộp kiểm

Hướng dẫn trên cho chúng ta biết về Lọc bài đăng theo hộp kiểm trong WordPress, điều này rất hữu ích cho những người làm việc với tư cách là nhà phát triển WordPress