Intereting Posts
Ajax live Поиск не работает в WordPress Dashboard Editor Как изменить страницу продукта для Jigoshop Показать все сообщения на двадцать девятом мультисайте Сайт WordPress продолжает загружать страницу обслуживания Попытка получить персонализированную мета-почту через Jetpack JSON API добавить пользовательский класс в wp_nav_menu с помощью фильтра hook nav_menu_css_class Проблемы с переносом WordPress на localhost Перепишите все изображения статьи для ссылки на файл Членство в Woocommerce синхронизировано по нескольким мультисайтам Расписание Удаление страницы меню и короткого кода Извлечь изображение src из сообщения и отправить его во внешнюю форму Google не индексирует данные из пользовательской таблицы, используемой для плагина Как выполнить определенный поиск таксономии wp_query Как настроить анонимную запись в bbpress? Индивидуальный класс css для каждого тега в wp_tag_cloud

Отображать все значения настраиваемого поля, созданного с помощью ACF на странице

Я использую Advanced Custom Fields / ACF для создания настраиваемых полей. Один из них – это список флажков с некоторыми опциями (опция1, вариант2, вариант3 …) .

Теперь я хочу отобразить все параметры этого поля на отдельной странице на интерфейсе, например:

Опции:
– Опция 1
– вариант 2
– вариант 3
– …

Как я могу получить все опции с ключами из ACF?

Solutions Collecting From Web of "Отображать все значения настраиваемого поля, созданного с помощью ACF на странице"

Функция get_field_object ACF может использоваться для получения информации и опций для определенного поля.

Сначала вам понадобится полевой ключ для определенного поля, которое вы хотите вывести. При редактировании группы полей щелкните вкладку «Параметры экрана» в верхней части страницы. Вы должны увидеть опцию для переключения отображения ключа поля (по умолчанию он скрыт для экономии места):

Ключ поля

Когда у вас есть ключ, вы можете загрузить объект поля и вывести его значения:

 $field_key = "field_5039a99716d1d"; $field = get_field_object($field_key); if( $field ) { echo '<select name="' . $field['key'] . '">'; foreach( $field['choices'] as $k => $v ) { echo '<option value="' . $k . '">' . $v . '</option>'; } echo '</select>'; } 

Если вы хотите что-то вывести, если флажок установлен, используйте:

 <?php if(in_array('news', get_field('checkbox') )): ?> <h1>News was ticked!</h1> <?php endif; ?> 

Если вы пытаетесь просто отобразить список проверенных параметров, используйте это:

 <p>Categories: <?php get_field('checkbox'); ?></p> 

Это даст вам массив значений, которыми вы можете управлять с помощью объявления foreach . Использование the_field('checkbox') даст вам разделенную запятыми строку параметров, которые вы также можете разделить.

Я также предлагаю вам перейти на сайт ACF и ознакомиться с документацией. На большинство вопросов такого типа будет дан ответ на них в приличной детализации, и разработчик также активно участвует в его форумах поддержки.

EDIT: Если вы хотите, чтобы список доступных параметров выводился на страницу для создания динамического запроса, у меня есть только одна вещь. Это часть, которую я только что построил вчера, чтобы вытащить список метазначений из заданного ключа поля (используя ACF). Я сделал это довольно общий для вас. Есть еще один кусок JS для обработки запроса ajax и довольно запутанный фрагмент php, который выводит полученные сообщения. Я не могу их переписать – JS является стандартным WP-обращением к ajax-вызову / ответу, а PHP – беспорядок условных проверок для 12 различных полей ACF, которые мы показываем (2 из которых являются повторителями). Основой здесь является этот код, кнопка onClick вызывает функцию ajax в отдельном JS-файле, а php для самой функции ajax по существу устанавливает массив аргументов для запроса, один из которых – $selectedOption или $_POST['option'] как meta_value. Это загружается в new WP_Query( $args ); , который затем используется в цикле, выход которого возвращается в js через add_action('wp_ajax_the_ajax_hook', 'fetch_option_list'); и add_action( 'wp_ajax_nopriv_the_ajax_hook', 'fetch_option_list' ); //for non logged-in users add_action( 'wp_ajax_nopriv_the_ajax_hook', 'fetch_option_list' ); //for non logged-in users .

  // Get list of meta_values for given meta_key and post_type (page, post, custom post type) function meta_list($key = '', $type = '', $status = 'publish'){ global $wpdb; $r = $wpdb->get_col($wpdb->prepare( " SELECT DISTINCT pm.meta_value FROM {$wpdb->postmeta} pm LEFT JOIN {$wpdb->posts} p ON p.ID = pm.post_id WHERE pm.meta_key = '%s' AND p.post_status = '%s' AND p.post_type = '%s' ORDER BY pm.meta_value ASC", $key, $status, $type)); return $r; } // ADD EG A FORM TO THE PAGE function meta_ajax_frontend(){ $formlist = meta_list('metakey', 'posttype'); echo '<form id="optionSelect">'; echo '<select id="optionList" name="optionList">'; foreach($formlist as $fl => $val) { echo '<option>' . $val . '</option>'; } echo '</select>'; echo '<input name="action" type="hidden" value="the_ajax_hook" /> <input id="submit_button" value = "Search" type="button" onClick="fetch_meta();" /> </form> <div id="meta_list"> Please select an option from the list </div>'; }