丁度同じようなことをしたので、投稿します。
私の場合、カスタムフィールドの値に数字を入れて、
‘orderby’ => ‘meta_value_num’
をつかってソートしたので、valueがareaなど文字列の場合
うまくいくかわかりませんが、ご参考に慣れば。
<?php
query_posts(
array(
'posts_per_page' => 4,
'post_type' => 'post', // 投稿タイプ、固定ページ、カスタム投稿であれば変更
'meta_key' => 'area',//ソートするカスタムフィールドキー
'orderby' => 'tokyo',//カスタムフィールドの値
'order' => ASC ,//昇順指定。降順の時はDESCを指定
)
);
?>
<?php if(have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
<?php the_title(); ?>
<?php endwhile; ?>
<?php endif; ?>
追記ですが絞り込んで表示する時は、以下でよいみたいです
array(
‘posts_per_page’ => 4,
‘post_type’ => ‘post’, // 投稿タイプ、固定ページ、カスタム投稿であれば変更
‘meta_key’ => ‘area’,//ソートするカスタムフィールドキー
‘meta_value’ => ‘tokyo’,//カスタムフィールドの値
‘order’ => ASC ,//昇順指定。降順の時はDESCを指定
)
ありがとうございます!
やってみましたが、うまくできませんでした。
下記のページを参考に
http://sachips.byeto.jp/wordpress/wp-customfield-wpquery.html
下記を入れたところ、希望通りに出来ました。
$args = Array(
'post_type' => 'test',
'posts_per_page' => -1,
'meta_key' => 'city',
'meta_value' => '神戸'
);
$the_query = new WP_Query($args);
if($the_query -> have_posts()):
while($the_query -> have_posts()): $the_query -> the_post();
//ここに処理を記述
endwhile;
endif;
wp_reset_postdata();