サポート » 使い方全般 » カスタムフィールドの値を取得して一覧表示を地域ごとに分けたい

  • 解決済 igawan

    (@igawan)


    現状は下記のようにして archive-◯◯.php で表示しています。

    <?php query_posts('posts_per_page=4&order=DESC&' . $query_string); ?>
    <?php if(have_posts()): while(have_posts()): the_post(); ?>
    <?php the_title(); ?>
    <?php endwhile; endif; ?>

    カスタムフィールド’area’の値が’tokyo’の投稿を一覧表示させたい場合、どのようにすればいいのでしょうか?

    恐れ入りますが、ご教示頂ければ幸いです。
    よろしくお願いいたします。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • yuki_ki

    (@yuki_ki)

    丁度同じようなことをしたので、投稿します。
    私の場合、カスタムフィールドの値に数字を入れて、
    ‘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; ?>
    yuki_ki

    (@yuki_ki)

    追記ですが絞り込んで表示する時は、以下でよいみたいです
    array(
    ‘posts_per_page’ => 4,
    ‘post_type’ => ‘post’, // 投稿タイプ、固定ページ、カスタム投稿であれば変更
    ‘meta_key’ => ‘area’,//ソートするカスタムフィールドキー
    ‘meta_value’ => ‘tokyo’,//カスタムフィールドの値
    ‘order’ => ASC ,//昇順指定。降順の時はDESCを指定
    )

    トピック投稿者 igawan

    (@igawan)

    ありがとうございます!
    やってみましたが、うまくできませんでした。

    下記のページを参考に
    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();

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック「カスタムフィールドの値を取得して一覧表示を地域ごとに分けたい」には新たに返信することはできません。