0

わかりました、以下のコードは機能します。Blu-Ray レビューに追加できる Rotten Tomatoes のスコア用のカスタム フィールドを作成しました。そのスコアに基づいて (60 を超えると「新鮮な」評価、「腐った」より下の評価が得られます)、適切な画像が表示されます。

これはうまくいきます。

しかし...すべてのページにも表示されます。まだスコアが割り当てられていないものでも。

<?php
  global $wp_query;
  $postid = $wp_query->post->ID;

$result = ( get_post_meta($postid, 'ecpt_tomatometer', true));

if ($result >= 60) {
    echo '<img src="/images/misc/fresh.png" width="102" height="25"> <span class=tomatometer>' . get_post_meta($postid, 'ecpt_tomatometer', true) . '%</span><br />';
  } 
else {
    echo '<img src="/images/misc/rotten.png" width="102" height="25"> <span class=tomatometer>' . get_post_meta($postid, 'ecpt_tomatometer', true) . '%</span><br />';
  } 
?>

以下は、機能するコードの別のスニペットですが、この 2 つを絡み合わせることができないようです。これ(下)は基本的に「カスタムフィールドに何かがある場合はコード(上)を表示し、そうでない場合は何も表示しない.

だから私はやりたいことの両方の部分を持っていますが、それらを一緒に働かせることができないようです.

<?php
global $wp_query;
$postid = $wp_query->post->ID;
if( get_post_meta($postid, 'tomatometer', true)) 
{ ?>
This won't show up if there's nothing in the field.
<?php } 
           elseif( get_post_meta($postid, 'ecpt_tomatometer', true)) { 
?>
this will display all of the information I need it to.
<?php } ?>

アイデア?

4

2 に答える 2

1

結果に値がある場合にのみ、結果の比較を行います (評価がない場合は null または false と見なします)。

global $wp_query;
$postid = $wp_query->post->ID;
if($result = get_post_meta($postid, 'ecpt_tomatometer', true)){
if ($result >= 60) {
        echo '<img src="/images/misc/fresh.png" width="102" height="25"> <span class=tomatometer>' . get_post_meta($postid, 'ecpt_tomatometer', true) . '%</span><br />';
} 
else {
        echo '<img src="/images/misc/rotten.png" width="102" height="25"> <span class=tomatometer>' . get_post_meta($postid, 'ecpt_tomatometer', true) . '%</span><br />';
}
}
于 2013-10-21T21:55:43.997 に答える