페이지에 사용자 정의 필드의 값을 표시하는 방법


17

자막, 가격, 스크린 샷, 다운로드 링크 등과 같은 다양한 사용자 정의 필드에 포함 된 '소프트웨어'라는 사용자 정의 게시물 유형이 있습니다. 이러한 사용자 정의 필드 중 일부에 대해 tinyMCE 편집 창을 사용할 수있는 기능을 만들었습니다. 이 필드를 페이지에 표시하려고했지만 성공하지 못했습니다.

내가 사용하는 방법은 다음과 같습니다.

<h1><?php the_title();?></h1>
<h3><?php echo get_post_meta(get_the_ID(), 'subtitle', TRUE); ?></h3>

다음은 페이지에 대한 링크 입니다.

<hr/>페이지 아래에는 생성 된 모든 메타의 목록이 있습니다. 표시 될 필드 중 하나만 이상한 이유로 '가격'입니다.

내가 뭘 놓친 지 아는 사람이 있습니까?


실제로 get_post_meta()함수이며 루프 내에서 호출하면 작동합니다 ... 올바른 사용자 정의 필드 이름을 사용하지 않는 한. 메타 박스와 같은 플러그인을 통해 구현되는 경우 종종 접두사가 붙습니다. 사용자 정의 필드를 선언하는 방법을 코드에 게시 할 수 있습니까? 해결책은 PhpMyAdmin에서 wp_postmeta 테이블을 열고 meta_keyLIKE % ... % 열 을 검색하고 "subtitle"을 meta_key 값으로 지정하는 것입니다. Wordpress가 사용자 정의 필드를 저장하는 이름이 정확히 표시됩니다.
pixeline

나는 이것이 오래 알고 있지만, 나는 phpMyAdmin에있는 모든 메타 필드의 목록을 얻으려면이 SQL을 사용 m.meta_key BY wp_postmeta m 그룹에서 SELECT m.meta_key
ssaltman

답변:


17

글쎄, 당신은 사용하고 있습니다 :

get_post_meta(get_the_ID(), 'subtitle', TRUE);

그래서 당신은 '자막'필드의 메타 값을 얻기 위해 Wordpress에 말하고 반환 된 값은 문자열 형식이어야합니다. get_post_meta () docu를 참조하십시오 .

게시물의 모든 메타 데이터를 가져 오려면 대신 get_post_custom () 함수를 사용해야 합니다. 예를 들어 루프 안에 있다면 :

$custom = get_post_custom();
foreach($custom as $key => $value) {
     echo $key.': '.$value.'<br />';
}

게시물의 모든 메타 데이터가 반환됩니다. 예를 들어 "price"메타 필드를 확인하려면 다음을 수행하십시오.

if(isset($custom['price'])) {
    echo 'Price: '.$custom['price'][0];
}

마지막 코드 블록이 누락되었습니다)
카바이드 20

1
$custom['price']배열 을 반환하는 것처럼 보이 므로 수행해야 할 수도 있습니다$custom['price'][0]
wal

3

이 코드를 사용하여 문제를 해결하십시오.

$key_name = get_post_custom_values($key = 'Key Name');
echo $key_name[0];
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.