0

Поэтому я думаю, что я делаю жизнь для себя самой.Форма и результаты поиска Wordpress в поле ACF в пользовательской таксономии

У меня есть поле поиска на моем сайте, что я разделить на 3, например:

<input type="text" name="part1" /> 
<input type="text" name="part2" /> 
<input type="text" name="part3" /> 

На моей странице результатов я создаю строку поиска, например:

$searchstring = $part1.'-'.$part2.'-'.$part3; 

Процесс затем должен выполните поиск в базе данных для моего поля, которое имеет значение $searchstring

Я нашел функцию поиска https://gist.github.com/jserrao/d8b20a6c5c421b9d2a51 там, которая, я думаю, довольно близка к тому, что я пытаюсь выполнить hieve, но я не совсем уверен, как реализовать все в

Мои данные примерно выглядит следующим образом:.

(taxonomy) product_cat - (name) Category 1 - (custom field) gc_number - (value I need to search) 77-999-77 
(taxonomy) product_cat - (name) Category 2 - (custom field) gc_number - (value I need to search) 73-333-73 
(taxonomy) product_cat - (name) Category 3 - (custom field) gc_number - (value I need to search) 76-666-76 

Я тогда нужно отобразить имя product_cat для пользователя.

Надеюсь, это имеет смысл, и любая помощь будет принята с благодарностью!

ответ

-1

Я задал этот вопрос на Stack Exchange - Wordpress Development и получил фантастический ответ от Kieran McClung. Его ответ отлично работает для меня и скопирован ниже.

<form role="search" method="get" id="acf-search" action="<?php site_url(); ?>"> 
... 

<input type="text" name="part1" /> 
<input type="text" name="part2" /> 
<input type="text" name="part3" /> 

<input type="submit" value="Search" /> 
</form> 


<?php 
// Results page 

// Might be worth checking to make sure these exist before doing the query. 
$part_1 = $_GET['part1']; 
$part_2 = $_GET['part2']; 
$part_3 = $_GET['part3']; 
$search_string = $part_1 . '-' . $part_2 . '-' . $part_3; 

// Get all product categories 
$categories = get_terms('product_cat'); 
$counter = 0; 

// Loop through categories 
foreach ($categories as $category) { 

    // Get custom field 
    $gc_number = get_field('gc_number', $category); 

    // If field matches search string, echo name 
    if ($gc_number == $search_string) { 
     // Update counter for use later 
     $counter++; 
     echo $category->name; 
    } 
} 

// $counter only increases if custom field matches $search_string. 
// If still 0 at this point, no matches were found. 
if ($counter == 0) { 
    echo 'Sorry, no results found'; 
} 
?> 
0

Из ACF документации

$posts = get_posts(array(
    'numberposts' => -1, 
    'post_type'  => 'post', 
    'meta_key'  => 'color', 
    'meta_value' => 'red' 
)); 

Этот пример показывает аргументы, чтобы найти все сообщения, где настраиваемое поле называется «цвет» имеет значение «красного». В вашем случае u должен использовать gc_number для meta_key и $searchstring для meta_value. Тогда вы можете использовать get_the_terms(), чтобы определить, к какому термину относятся категории.

+0

привет спасибо. Я смотрел на это, и что меня бросает, это тип опроса, который задан как пост в примере. Однако мое настраиваемое поле задается в таксономии (product_cat). Я просто меняю сообщение на таксономию или product_cat или что-то в этом роде? –