2017-09-28 11 views
0

페이지 편집기의 맞춤 메타 상자를 설정하고 있습니다. 텍스트 필드에 입력 된 값은 올바르게 저장되며 사용자 정의 필드 상자에 표시됩니다. 그러나 업데이트 후 사용자 지정 메타 상자의 텍스트 필드는 모두 저장된 텍스트 문자열 대신 "Array"라는 단어를 표시합니다. 참고 Codex: get_post_custom텍스트 상자 문자열 맞춤 메타 값이 저장되지만 저장 후 "배열"로 표시됩니다.

그래서 당신이 비록 - 여기

screenshot

단일 값의 기대 배열이 경우에도 functions.php

function restaurant_meta_box_cb() 
{   
    global $post; 
    $values = get_post_custom($post->ID); 

    $text_name = isset($values['biz_name']) ? $values['biz_name'] : ''; 
    $text_addr = isset($values['biz_addr']) ? $values['biz_addr'] : ''; 

    // We'll use this nonce field later on when saving. 
    wp_nonce_field('my_meta_box_nonce', 'meta_box_nonce'); 
    ?> 
    <p> 
     <label for="biz_name">Restaurant Name</label> 
     <input type="text" name="biz_name" id="biz_name" value="<?php echo $text_name; ?>" /> 
    </p> 
    <p> 
     <label for="biz_name">Address</label> 
     <input type="text" name="biz_addr" id="biz_addr" value="<?php echo $text_addr; ?>" /> 
    </p> 

    <?php  
} 

답변

0

get_post_custom 항상 다차원 배열을 반환의 코드입니다 (아마도) 과 biz_addr을 문자열로 설정하면 get_post_custom()은 여전히 ​​배열의 각 값을 반환합니다.

단일 결과가 하나 뿐인 것으로 알고 있으므로 첫 번째 요소에 직접 액세스 할 수 있습니다 (예 :


$text_name = isset($values['biz_name'][0]) ? $values['biz_name'][0] : ''; $text_addr = isset($values['biz_addr'][0]) ? $values['biz_addr'][0] : ''; 
는 참고 : 문제에 관련없는,하지만 난 당신이 당신의 주소 라벨에 잘못된 for 값이 발견 (는 "biz_addr"해야는) : <label for="biz_name">Address</label>

+0

그것을 해결 그! –

+0

@AndrewRiley 기꺼이 도와 드릴 수 있습니다! 이렇게해서 문제가 해결되었으므로 수락을 고려하여 질문을 사이트에서 해결 된 것으로 표시합니다. [내 질문에 대한 답변은 어떻게해야합니까?] (https://stackoverflow.com/help/someone-answers)를 참조하십시오. 우리는 또한 몇 가지 포인트를 얻습니다 :) – FluffyKitten

+0

완료. 나는 그런 멍청 아! ;) –