Jack
Это довольно сложная проблема, поскольку в вашей установке WP есть несколько областей, которые вам необходимо решить для решения вашей проблемы. Я укажу вам правильное направление, но я не ожидаю, что это будет полный ответ для вас.
Прежде всего, выпадающий список. Поскольку вы знаете, что вам больше ничего не нужно, кроме выпадающего списка, в котором отображается выбор рейтинга, вы можете легко сделать это жестко. Поскольку он находится в настраиваемом поле, контролируемом вами, которое задают только вы / ваши коллеги, вы будете знать, что находится в этом поле, и можете спокойно его кодировать. В качестве альтернативы, я бы настроил рейтинг в качестве пользовательской таксономии с терминами «1 звезда», «2 звезды» и т. Д., И тогда вы могли бы динамически создать свой выпадающий список из этой таксономии. Но, поскольку это в пользовательском поле, я бы просто использовал что-то вроде этого:
<form action="rating-search.php" method="GET">
<select name="rating-search" id="rating-search">
<option value="1">1 Star</option>
<option value="2">2 Stars</option>
<option value="3">3 Stars</option>
<option value="4">4 Stars</option>
<option value="5">5 Stars</option>
</select>
<input id="rating-search-submit" name="rating-search-submit" value="Search" />
</form>
Теперь я предполагаю, что вы можете справиться с представлением этих данных. На странице, которая получает эти данные (вы можете сделать это с помощью страницы шаблона), вам нужно будет изменить wp_query для поиска только тех сообщений, которые имеют мета-значение rating = {input value}. Вам понадобится код, похожий на:
$query = new WP_Query();
$query->query(
array(
'meta_query' => array(
array(
'key' => 'rating', // Insert the name of the meta key here
'value' => $_POST['rating-search'], // This is the rating you are matching
'compare' => '=',
'type' => 'NUMERIC'
)
)
)
);
if($query->have_posts())
{
while($query->have_posts())
{
$query->the_post();
global $post;
//Do normal loop business here
}
}
Этот запрос поможет вам найти сообщения, для которых в настраиваемом поле задано желаемое значение. Обратите внимание, что параметр meta_query
работает только для WP 3.1 и выше. Это супер мощная функция, которую стоит обновить до версии 3.1. Подробнее о том, что вы можете делать с классом WP_Query, можно узнать здесь: http://codex.wordpress.org/Function_Reference/WP_Query.
Я знаю, что вы не можете просто скопировать и вставить этот код, чтобы получить то, что вы хотите, но я надеюсь, что это даст вам некоторые идеи о том, что вы можете сделать, чтобы приблизиться к желаемому результату. Удачи!