내가 사용하고 고급 사용자 정의 필드 / ACF를 사용자 정의 필드를 만들 수 있습니다. 그중 하나는 일부 옵션 (option1, option2, option3 ...) 을 표시하는 확인란 목록입니다 .
이제이 필드의 모든 옵션을 프론트 엔드의 별도 페이지에 다음과 같이 표시하고 싶습니다.
옵션 :
-옵션 1-
옵션 2-
옵션 3
-...
ACF에서 키로 모든 옵션을 검색하려면 어떻게해야합니까?
내가 사용하고 고급 사용자 정의 필드 / ACF를 사용자 정의 필드를 만들 수 있습니다. 그중 하나는 일부 옵션 (option1, option2, option3 ...) 을 표시하는 확인란 목록입니다 .
이제이 필드의 모든 옵션을 프론트 엔드의 별도 페이지에 다음과 같이 표시하고 싶습니다.
옵션 :
-옵션 1-
옵션 2-
옵션 3
-...
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 사이트 로 이동하여 설명서를 참조하십시오. 이 유형의 대부분의 질문은 괜찮은 자세로 답변 될 것이며 개발자는 자신의 지원 포럼에서도 활발히 활동하고 있습니다.
편집 : 동적 쿼리를 생성하기 위해 사용 가능한 옵션 목록을 페이지에 출력하려면 원하는 것이 있습니다. 이것은 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
.을 통해 아약스를 통해 게시물의 목록을 가져 후자의 기능을 루프를,하지만 난 그 장면을 떠났습니다.