2012-06-26 8 views
3

나는 'RELEASES'라는 사용자 정의 게시 유형을 설정했습니다 - 음악 CD 릴리스라고 생각합니다.Wordpress 사용자 정의 게시 유형 및 해당 필드를 표시

이 게시물 유형에는 관련 음악 CD 정보를 모두 입력 할 수있는 'release_artist', 'release_title', 'release_date', 'release_artwork'및 'release_tracklisting'이라는 입력란이 있습니다.

내 Wordpress 템플릿에이 정보를 표시하는 데 실제로 문제가 있습니다. 나는 정말 제목 목록 만 출력하고 다른 데이터는 출력하지 않았다.

모든 정보를 표시하기 위해 내가 루프에 넣은 아이디어는 무엇입니까? 각 항목을 따로 따로 스타일링 할 수 있도록 LIST 항목을 구성하는 것이 바람직합니다.

모든 의견을 크게 높이 셨습니다.

답변

4

사용자 정의 필드입니까? '예'라고 대답하면 what codex.wordpress.org이 (가) 표시됩니다. 더 나은 방법은 ACF plugin입니다.

- 편집

다른 사람 (. 예를 들어 집에서)에 페이지의 일부를 표시하려면

, 당신은 query_posts를 사용해야합니다. 이것은 매우 간단한 기능입니다.

 <?php 
     global $wp_query; 
     query_posts(array(
      'post_type' => 'releases' 
     )); 
 while(have_posts()) : the_post(); ?> 
      <?php $key = get_post_meta($post->ID, 'Opis nazwy'); ?> 
      <li <?php post_class(); ?>><a href="<?php the_permalink(); ?>"><?php if($key) { echo $key[0]; } else { the_title(); }; ?></a></li> 
      <?php 
     endwhile; 
     wp_reset_query(); 
     ?> 

$key 여기 release_artists로 설정 한 값입니다 : 루프의 경우,이 같은 것을보십시오. 순전히 테스트 용입니다. 작동하는 경우 - 자신의 변수를 자유롭게 정의하십시오.

+0

예 사용자 정의 필드입니다. 해당 부분을 정렬했습니다. 내 사이트에 결과를 표시 할 수 없습니다. – lowercase

+1

정확히 무엇을하고 있습니까? 테마 파일에서 간단히 '반향'시킬 수 있어야합니다. 가장 좋은 방법은 특정 포스트 타입을위한 단일 페이지를 생성하는 것입니다 (예를 들어,'single-release.php') 거기서'echo get_post_meta ($ post-> ID, 'release_artist')'를 사용할 수 있습니다. –

+0

이것은 작동하지 않습니다. 나는 이유를 해결할 수 없다. 위의 예에서 'ID'가 동적으로 생성 되었습니까? 아니면 각각의 ID를 하드 코딩 할 것을 제안 하시겠습니까? – lowercase

2

get_post_meta을 사용하여 필요에 따라 입력란을 끌어 올 수 있습니다. 루프 내부에서, 당신은 다음과 같이 시작할 수 있습니다

<?php 
    $release_artist = get_post_meta($post->ID, 'release_artist', true); 
    $release_title = get_post_meta($post->ID, 'release_title', true); 
?> 

<ul> 
    <li class="release_artist"> 
     <?php echo $release_artist; ?> 
    </li> 
    <li class="release_title"> 
     <?php echo $release_title; ?> 
    </li> 
</ul> 
+0

불행히도 나는 이것을 작동시킬 수 없다. 나는 그것이 'ID'측면과 관련이 있다고 생각합니다. 그 '신분증'은 어디에서 왔습니까? 그 코드를 위의 간단한 루프에 넣을 수 있습니까? 나는 그 자리에 루프가 있다고 생각한다. (또는 루프 자체가 틀렸다.) – lowercase

+0

현재 루프를 알려 주시면 문제가 무엇인지 살펴볼 수 있습니다. 그렇지 않다면, 나는 깊이있는 예를 더 상세하게 기록 할 시간이 있어야한다. – Ryan

+0

내 질문에 맞는 말이 아닌 경우, 내 사이트의 홈 페이지에 6 개의 최신 음악/CD 릴리스를 표시하려고합니다. 따라서 각각에는 아티스트 이름, 앨범 제목, 앨범 아트웍 그림 및 링크/구매 버튼이 포함됩니다. 나는 내 홈페이지 템플릿을 사용하여이 정보를 사용자 정의 포스트 유형 템플릿이 아닌 NOT에 넣어 두지 않았습니다. – lowercase

1

당신은 사용해야 루프 내부

<?php the_field('field_name') ?> 

합니다. 희망이 도움이됩니다! 사용자 ID의 질문에 대해

+1

ACF 플러그인을 사용할 때만 작동합니다. – Jsalinas

0

:

모든 항목 게시물과 워드 프레스의 페이지처럼는 "ID"를 가지고 있지만, 그들은 일반적으로 그들의 목록에 표시되지 않습니다. 관리자에게 "ID"열을 추가하는 플러그인이 많이 있습니다. Wordpress.org에서 "show id"를 검색하고 원하는 단어를 선택하십시오. 그것을 설치하십시오. 그것을 활성화하십시오. ID가 표시됩니다. 나는 온라인으로 본 적이 대부분의 문서에서

https://wordpress.org/plugins/search.php?q=show+id

1

은 query_posts 사용자 정의 쿼리와 루프를 만드는 함수로 이동-해서는 안됩니다. 다음 코드 스 니펫이 좋은 출발점이 될 수 있습니다. 테마 템플릿 파일의 메인 루프 내부 또는 외부에서 사용할 수 있어야합니다.

$args = array(
    'post_type' => 'release', //remember this is-case sensitive 
    'posts_per_page' => -1, 
); 

$releaseQuery = new WP_Query($args); 

if ($releaseQuery->have_posts()) : 
while ($releaseQuery->have_posts()) : 
$releaseQuery->the_post(); 

// Fetching the post ID for demonstration and for use later 
$c_id = get_the_ID(); 

// After running the_post(), alot of the Wordpress functions (not all) can now be used without supplying the post ID.  
echo get_the_title(); 
// You could also have used get_the_title($c_id); 

// Then: 
echo get_post_meta($c_id, 'release_title', true); 
echo get_post_meta($c_id, 'release_artist', true); 

endwhile; 
endif; 

// Return to the current page's main query 
wp_reset_query(); 

// This should now display the page's title 
the_title(); 
관련 문제