Расширить поиск WordPress до настраиваемого поляPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Расширить поиск WordPress до настраиваемого поля

Сообщение Anonymous »

Я хотел бы расширить поисковый запрос WordPress_var на свое настраиваемое поле для настраиваемого типа сообщения. У меня есть два настраиваемых поля: одно для дня недели (это работает), а другое для текста курса. Поисковый запрос query_var 's' также должен выполнять поиск в этом текстовом поле курса. Я реализовал:

Код: Выделить всё

function my_search_query( $query ) {
if ( !is_admin() && $query->is_search && is_post_type_archive( 'course' ) ) {
if (!empty($query->query_vars['weekday'][0])){
$query->set('meta_query', array(
array (
'key' => 'course_weekday',
'value' => $query->query_vars['weekday'][0],
'compare' => '='
)
));
}
if (!empty($query->query_vars['s'])){
$query->set('meta_query', array(
'relation' => 'OR',
array (
'key' => 'course_text',
'value' => $query->query_vars['s'],
'compare' => 'LIKE'
),
));
}
}
}
add_filter( 'pre_get_posts', 'my_search_query');
Второй должен добавить 's' query_var для поиска внутри метаполя Course_text.

ОБНОВЛЕНИЕ: Я изменили pre_get_posts на

Код: Выделить всё

function my_search_query( $query ) {
if ( !is_admin() && $query->is_search && is_post_type_archive( 'course' ) ) {
if (!empty($query->query_vars['weekday'][0])){
$query->set('meta_query', array(
array (
'key' => 'course_weekday',
'value' => $query->query_vars['weekday'][0],
'compare' => '='
)
));
}
}
}
add_filter( 'pre_get_posts', 'my_search_query');
Затем я добавил это в archive-course.php (где находится моя форма поиска):
Так это и работает. Теперь WP выполняет поиск по заголовку пользовательского сообщения ИЛИ в Course_text по запросу query_var.

ОБНОВЛЕНИЕ 2: Нет, извините, решение 2 тоже не работает. При первом тестировании у меня были неверные данные.

Подробнее здесь: https://stackoverflow.com/questions/487 ... stom-field
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»