0

値がない場合、カスタム フィールドの表示を非表示にしようとしています。それらをthe_metaで表示すると、カスタム フィールドに値があるかどうかに関係なく、ヘッダーが表示されます。

次の html を生成します。

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

コンテンツがない場合、ページにタイトルを付けたくありません。だから私は試しました:

<?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 - 1343633746:1 - - field_5014a45c9a2df - field_5014a48c38f9d - - field_5014a48c2cc82

値を使用:

  • 1 - 1343603999:1 - 卵 3 カップ - field_5014a45c9a2df - field_5014a48c38f9d - 小麦粉 2 カップ - field_5014a48c2cc82

これはおそらく長い道のりです。テストのために入力した 2 つのフィールドだけでなく、「最後の編集」などの値も表示されます。

値がある場合にのみカスタム フィールドを表示するにはどうすればよいですか? 私はテーマを書いているので、事前にフィールドの名前や数がわかりません。

ありがとう!

4

2 に答える 2

0

あなたのテーマは特定のカスタムフィールドのみを表示していますか? すべてに対してテストするのではなく、特定のカスタム フィールドが空かどうかだけをテストしてみませんか?

例えば

$item = get_post_meta($post_id, "custom_field_1", true);
if (!empty($item)) { // if that field has something
    [...]            // display what you need to
}
于 2012-07-30T09:07:35.940 に答える