내가 사용하고 고급 사용자 정의 필드 / ACF를 사용자 정의 필드를 만들 수 있습니다. 그중 하나는 일부 옵션 (option1, option2, option3 ...) 을 표시하는 확인란 목록입니다 .
이제이 필드의 모든 옵션을 프론트 엔드의 별도 페이지에 다음과 같이 표시하고 싶습니다.
옵션 :
-옵션 1-
옵션 2-
옵션 3
-...
ACF에서 키로 모든 옵션을 검색하려면 어떻게해야합니까?
내가 사용하고 고급 사용자 정의 필드 / ACF를 사용자 정의 필드를 만들 수 있습니다. 그중 하나는 일부 옵션 (option1, option2, option3 ...) 을 표시하는 확인란 목록입니다 .
이제이 필드의 모든 옵션을 프론트 엔드의 별도 페이지에 다음과 같이 표시하고 싶습니다.
옵션 :
-옵션 1-
옵션 2-
옵션 3
-...
ACF에서 키로 모든 옵션을 검색하려면 어떻게해야합니까?
답변:
get_field_objectACF 기능은 특정 필드에 대한 정보 및 옵션을 얻을 수 있습니다.
먼저 출력하려는 특정 필드의 필드 키가 필요합니다. 필드 그룹을 편집 할 때 페이지 상단의 화면 옵션 탭을 클릭하십시오. 필드 키 표시를 토글하는 옵션이 표시됩니다 (공간을 절약하기 위해 기본적으로 숨겨져 있음).

키가 있으면 필드 객체를로드하고 해당 값을 출력 할 수 있습니다.
$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 사이트 로 이동하여 설명서를 참조하십시오. 이 유형의 대부분의 질문은 괜찮은 자세로 답변 될 것이며 개발자는 자신의 지원 포럼에서도 활발히 활동하고 있습니다.
편집 : 동적 쿼리를 생성하기 위해 사용 가능한 옵션 목록을 페이지에 출력하려면 원하는 것이 있습니다. 이것은 ACF를 사용하여 주어진 사용자 정의 필드 키에서 메타 값 목록을 가져 오기 위해 어제 방금 작성한 조각입니다. 나는 그것을 당신에게 상당히 일반적으로 만들었습니다. 아약스 요청을 처리하기위한 또 다른 JS 덩어리와 결과 게시물을 출력하는 다소 복잡한 PHP 조각이 있습니다. JS를 다시 작성할 수는 없습니다. JS는 표준 WP 순방향 아약스 호출 / 응답이며, PHP는 우리가 표시하는 12 개의 서로 다른 ACF 필드 (2 개는 리피터)에 대한 조건부 검사의 혼란입니다. 기본은이 코드입니다. 버튼 onClick은 별도의 JS 파일에서 ajax 함수를 호출하며 ajax 함수 자체의 PHP는 본질적으로 쿼리에 대한 인수 배열을 설정합니다.$selectedOption또는 $_POST['option']meta_value로. 그것은로 피드되고 new WP_Query( $args );, 루프에서 사용되며, 그 출력은 add_action('wp_ajax_the_ajax_hook', 'fetch_option_list');and 를 통해 js로 피드백됩니다 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>';
}
foreach.을 통해 아약스를 통해 게시물의 목록을 가져 후자의 기능을 루프를,하지만 난 그 장면을 떠났습니다.