0

the_meta() カスタムフィールドの結果を表示するために使用しています。私の目的は、コンテンツ ボックスの div に値/結果を表示することです。

<div class="content-box">
<?php the_meta(); ?> </div>

これはカスタム フィールドのある投稿では機能しますが、カスタム フィールドのない他のページにも空白のボックスが表示されます。

これらのコンテンツ ボックスをカスタム フィールドのあるページにのみ表示するにはどうすればよいですか?

4

1 に答える 1

2

get_post_custom_keysメタがある (またはない) かどうかを確認するために使用できます。

<?php
    if ( get_post_custom_keys() ) {
        echo '<div class="content-box">';
        the_meta();
        echo '</div>';
    }
?>

または、非表示のメタ値の問題 (コメントを参照) に対処するために、独自のメタ関数をロールすることができます。functions.phpテーマのファイルに次を入れます。

function so16500287_the_meta() {
    if ( $keys = get_post_custom_keys() ) {
        $array = array();                   
        foreach ( (array) $keys as $key ) {
            $keyt = trim($key);
            if ( is_protected_meta( $keyt, 'post' ) )
                continue;
            $values = array_map('trim', get_post_custom_values($key));
            $value = implode($values,', ');
            $array[] = apply_filters('the_meta_key', "<li><span class='post-meta-key'>$key:</span> $value</li>\n", $key, $value);
        }
        if( ! empty( $array ) ) {
            echo "<div class='content-box'><ul class='post-meta'>\n";
            foreach( $array as $item )
                echo $item;
            echo "</ul></div>\n";
        }
    }
}

テンプレートで次のように呼び出します。

<?php so16500287_the_meta(); ?>
于 2013-05-11T18:58:50.580 に答える