[WordPress]カスタム投稿タイプに設定したカスタムフィールドのみを配列で取得
- 公開日:
- カテゴリー: TIPS
最近多いWordPressコードです。
トップページのループ外にカスタム投稿のカスタムフィールドのみを出力したい、という特定のシチュエーションです。
使用シーンとしては、記事に登録したカスタムフィールドをトップページの特定の場所出力したい、という場合です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<?php if(is_front_page()): $args = array( 'post_type' => 'custom_post_name' ); $myposts = get_posts($args); $field_array = array(); foreach ($myposts as $post) : setup_postdata($post); array_push($field_array, get_post_meta($post->ID, 'custom_field_name', true)); endforeach; wp_reset_postdata(); echo '<p>'. $field_array[0] . '</p>'; echo '<p>'. $field_array[1] . '</p>'; echo '<p>'. $field_array[2] . '</p>'; echo '<p>'. $field_array[3] . '</p>'; endif; |
「トップページ以外に使用&全記事」という場合なら短く書けます。
1 2 3 4 5 6 7 8 9 |
$myposts = get_posts(); $field_array = array(); foreach ($myposts as $post) : setup_postdata($post); array_push($field_array, get_post_meta($post->ID, 'custom_field_name', true)); endforeach; wp_reset_postdata(); echo '<p>'. $field_array[0] . '</p>'; echo '<p>'. $field_array[1] . '</p>'; echo '<p>'. $field_array[2] . '</p>'; echo '<p>'. $field_array[3] . '</p>'; |
各pタグにclass名を付けておいて、cssで位置を調整すれば好きな場所に置けます。
もしくはjQueryであとで取り出す等、使い道は色々とありそうですね。