Филтър за търсене в WordPress по персонализирано поле

Някой знае ли как да промени търсенето в WordPress, за да филтрира по променливи на заявка? Променливите на заявката са персонализирани полета. Например, имам персонализирана публикация от тип „книги“ и искам потребителите да могат да търсят въз основа на персонализираното поле „book_author“.

URL адресът, след като натиснах бутона за търсене, изглежда така:

?search_filter=book_author&s=tolkien&post_type=book

Всяка помощ ще бъде високо оценена.


person Jason Ellis    schedule 23.03.2014    source източник


Отговори (1)


Ще искате да направите нещо подобно във вашия PHP код на страница за търсене.

$args = array(
              'post_type' => 'book',
              'order' => 'asc',
              'meta_query' => array(
                  array(
                      'key' => $_GET['search_filter'],
                      'value' => $_GET['s'],
                      'compare' => 'IN',
                      )
                  )
              );
$loop = new WP_Query( $args );

разбира се, може да искате да разгледате защитата на кода срещу SQL инжектиране и т.н. и т.н., но това ви дава отправна точка за създаване на страница, която ще прави това, което искате.

Бих препоръчал да прочетете повече за WP_Query, особено частите за подреждане по и параметри.

person Stewartside    schedule 23.03.2014
comment
Много благодаря! В крайна сметка тръгнах по друг път, но това определено ме изпрати в правилната посока. Не съм тествал напълно WP_Query, но ще го прочета за бъдещи справки. - person Jason Ellis; 24.03.2014
comment
Абсолютно! Вашият метод работи перфектно след прочитане на WP_Query. Благодаря отново! - person Jason Ellis; 25.03.2014