Использование раскрывающихся списков HTML для сортировки пользовательских полей в WordPress - PullRequest
0 голосов
/ 23 апреля 2011

У меня есть веб-сайт (расположен здесь ), и я хотел бы сделать что-то, чтобы улучшить поиск и просмотр разных отзывов.

Я думал о введении способа поиска по сообщениям на основе рейтинга. В настоящее время у меня есть одна категория, которая имеет настраиваемое поле с заголовком поля «Рейтинг». Каждое значение в настраиваемом поле является целым числом от 1 до 5.

Вот тестовая категория (http://enoda.co.uk/category/ipad-2/ipad-reviews/ipad-utilities/)

Я хотел знать, как бы я мог создать раскрывающееся меню где-то над постами в категории со звездными оценками от 1 до 5. Кроме того, я хотел бы, чтобы пользователи могли просматривать отзывы с таким рейтингом.

Любая помощь будет отличной,
С наилучшими пожеланиями,
Jack

1 Ответ

0 голосов
/ 24 апреля 2011

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.

Я знаю, что вы не можете просто скопировать и вставить этот код, чтобы получить то, что вы хотите, но я надеюсь, что это даст вам некоторые идеи о том, что вы можете сделать, чтобы приблизиться к желаемому результату. Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...