【WordPress】meta_valueの値を取得する方法メモ
不動産サイトを作っている際に、一覧ページで投稿の「価格」だけを取得したかったので、色々やってみた。
以下のコードはスラッグを取得するのですが、
<?php echo get_post($wp_query->post->ID)->post_name; ?>
この「post_name」を変更していきます。
phpMyAdminで確認してみると、価格は「kakaku」というmeta_keyが割り当てられています。
ということで「post_name」を「kakaku」に変更し、ループ内に記載してみます。
<?php echo get_post($wp_query->post->ID)->kakaku; ?>
出力されました。
ですがこれだとカンマがないので、ちょっと見づらいです。
そこでPHPの関数「number_format()」を利用します。カスタムフィールド取得の関数「get_post」を更に囲みます。
<?php echo number_format(get_post($wp_query->post->ID)->kakaku); ?>
となりました。
あとは「円」とかをつければ一旦完了ですね。
注意
この書き方ですと、金額の入力がない場合はエラーが表示されてしまいます。
ですのでif文で「入力がない場合」の対処を追記する必要があります。
その場合は、
<?php $abc = get_post_meta($post->ID, 'kakaku', true);?> <?php if(empty($abc)):?> <!-- 本来ここに代替する内容を記載しますが、今回は特に代替する内容はないのでここを空にします --> <?php else:?> <?php echo number_format(get_post_meta($post->ID,'kakaku',true));?> <?php endif; ?>
こちら。
1行目で「$abc」が「kakaku」の事を指しているという一文を書き、2行目で「empty($abc)」つまり空だった場合とし、「else」それ以外の場合、として条件分岐させています。
これで価格の入力がない場合何もしません。
ちなみに
<?php if(empty($abc)):?>
これは
<?php if($abc ===''):?>
と同じ意味です。
タグ: WordPress | 2015年12月27日