Здравствуй, уважаемый друг!

Кажется, ты используешь AdBlock. Этот проект развивается и существует за счет доходов от рекламы.
Добавь, пожалуйста, нас в исключения.

Спасибо за понимание.

Get dropdown options для Magic Fields 2

Автор: в категории Статьи о php 0 комментариев

Плагин Magic Fields является достаточно популярным плагином для WordPress. Этот плагин позволяет создавать разные типы записей (custom post types) и дополнительные поля к ним. Популярен этот плагин ввиду своей простоты и гибкости.

Зачастую Magic Fields применяется для создания каталогов записей определенного типа. Это может быть портфолио, каталог товаров, каталог заведений, чего угодно. Как и в любом каталоге пользователю было бы удобнее найти требуемую ему единицу благодаря поиску или фильтру по параметрам этих записей. Для этого нужно вывести фильтр — вывести все варианты значений, которые могут принимать параметры, для того чтобы с ними работал посетитель. Для полей типа input конечно варианты значений в фильтр не выводят, а вот для select (dropdown list) вывести их необходимо, но к сожалению, нативными средствами плагина Magic Fields 2 тут не обойдешься.

В своем старом посте Реализуем поиск для Magic Fields 2 я рассматривал вариант SQL запроса прямо в шаблоне, но так делать не красиво, и вот, спустя время был обнаружен еще один способ!

Для того чтобы получить опции выпадающего списка дополнительного поля Magic Fields достаточно просто в файле functions.php создать нужную функцию и к ней обращаться в любом месте шаблона. Вот собственно и сама функция:


// Magic Field get dropdown options
function get_field_options( $field, $post_type = NULL ) {
global $wpdb, $post;
static $field_options_cache = array();

if ( !$post_type ) { $post_type = get_post_type( $post->ID ); }

if ( !array_key_exists( $post_type, $field_options_cache ) ) {
$field_options_cache[$post_type] = array();

$sql = sprintf(
"SELECT name, options FROM %s WHERE post_type = '%s'",
MF_TABLE_CUSTOM_FIELDS, $post_type );

$results = $wpdb->get_results( $sql, ARRAY_A );
foreach ( $results as $result ) {
$field_options_cache[$post_type][$result['name']] = unserialize( $result['options'] );
}
}

return $field_options_cache[$post_type][$field];
}

Вот таким нехитрым способом мы можем получить список опций для данного дополнительного поля, где среди прочих настроек будет хранится строка с опциями выпадающего списка разделенных через \n — т.е. новой строкой, как вы вводите эти данные в админке при создании поля.

На этом все. Удачного вам коддинга!

comments powered by HyperComments

Не забудь подписаться на группы в социальных сетях, чтобы всегда быть вкурсе последних событий!

Вверх!

Меню блога

Категории блога

Облако тегов