2012-07-30 4 views
0

값이없는 사용자 정의 필드의 표시를 숨기려고합니다. the_meta과 함께 표시하면 사용자 정의 필드에 값이 있는지 여부에 관계없이 헤더가 표시됩니다. 아무 내용도 존재하지 않는 경우는 정말 페이지에 제목을 원하지 않는Wordpress the_meta 및 get_post_meta- 사용자 정의 필드에서 빈 값 숨기기

<ul class="post-meta"> 
<li> 
<span class="post-meta-key">My Custom Field Title</span> 
</li> 
<li> 
</ul> 

:

그것은이 HTML을 생성합니다. 그래서 시도 :

  • 1-1343633746 : 어떤 값으로

    :

    <?php 
    $ck = get_post_custom_keys($post_id); //Array 
        foreach ($ck as $k) { 
         $cv = get_post_custom_values($k, $post_id); //Array 
          foreach ($cv as $c) { 
           echo (' - '); 
           echo ($c); 
          } 
        } 
    ?> 
    

    $의 C (게시물에 적용되는 사용자 정의 값)에 대한 에코는 다음과 같습니다 1 - - field_5014a45c9a2df - field_5014a48c38f9d - - 값으로 field_5014a48c2cc82

:

  • 1-1343603999 : 1 - 계란의 3 컵 - field_5014a45c9a2df - field_5014a48c38f9d - 밀가루 2 컵 - field_5014a48c2cc82

이 아마 그것에 대해 갈 수있는 긴 방법입니다. 테스트 할 두 필드뿐만 아니라 "마지막 편집"과 같은 값을 보여줍니다.

값이있는 경우에만 사용자 정의 필드를 표시 할 수 있습니까? 나는 주제를 쓰고 있습니다. 그래서 나는 필드의 이름이나 몇 개를 미리 모릅니다.

감사합니다.

답변

0

, 당신은 필드 밑줄 (_edit_last 같은 내부 값)로 시작하는 경우 확인하고 사람들을 건너 뛸 수 있습니다.

<?php 
$ck = get_post_custom_keys($post_id); //Array 
    foreach ($ck as $k) { 
     if (substr ($k, 0, 1) == '_') 
     { // skip keys starting with '_' 
      continue; 
     } 
     $cv = get_post_custom_values($k, $post_id); //Array 
      foreach ($cv as $c) { 
       if (empty ($c)) 
       { // skip empty value 
        continue; 
       } 

       echo ($k . ': ' . $c . '<br/>'); 
      } 
    } 
?> 
+0

비어 있지 않은 필드의 값을 반환합니다. 이제 일단 제목을 다시 얻는 방법을 알아 내면 필드가 비어 있지 않으면 그 솔루션을 게시 할 것입니다. 감사! :) –

+0

제목으로 키 이름을 뜻한다면, 그것들은'$ k' 변수에 있습니다. echo ($ k. ':'. $ c. '
'); ' – gregn3

+0

감사합니다! –

0

테마는 특정 사용자 정의 필드 만 표시합니까? 모든 것을 테스트하는 대신 특정 사용자 정의 필드가 비어 있는지 여부 만 테스트하면됩니다.

예. 당신은 empty()에 빈 값을 확인할 수 있습니다

$item = get_post_meta($post_id, "custom_field_1", true); 
if (!empty($item)) { // if that field has something 
    [...]   // display what you need to 
} 
+0

불행히도. 예를 들어 관리자가 아닌 고급 사용자 정의 필드를 설치 한 사이트가 있습니다. 그리고 나 자신 외에 다른 관리자가 사용할 주제를 쓰고 있다면 특정 필드 이름을 알 수 없습니다. 이상하게도, ** the_meta **는 그 차이를 알릴 정도로 똑똑합니다. 어떤 것이 관리자에 의해 추가되었지만 어떻게해야할지 모르겠습니다. –

관련 문제