サポート » プラグイン » ターム内のTime Pickerで並べ替え

  • 解決済 mono0517

    (@mono0517)


    Advanced Custom Fieldsを利用して、カスタムフィールドを作っています。

    6/12(ターム)
     9:00 出発(入力されたフィールド)
     12:00 昼食(入力されたフィールド)
    6/13(ターム)
     10:00 出発(入力されたフィールド)
     …

    というようにソートしたいのですが、現状は投稿時間で並べ替えられてしまいます。

    
    <?php
      $taxonomy_slug = 'schedules';
      $post_type_slug = 'schedule';
      $terms = get_terms($taxonomy_slug);
      foreach ( $terms as $value ) {
        echo '<h2><span>'.esc_html($value->name).'</span></h2>';
        $term_slug = $value->slug;
        $args = array(
          'post_type' => $post_type_slug,
          $taxonomy_slug => $term_slug ,
          'posts_per_page' => -1,
          'post_status' => 'publish'
          'order' => 'ASC',
          'meta_key' => '時間',
          'orderby' => 'time',
        );
        $myquery = new WP_Query( $args );
    ?>
    

    このような記載ですと、うまくいきませんでした。

9件の返信を表示中 - 1 - 9件目 (全9件中)
  • こんにちは

    orderby には meta_value を指定する必要があります。
    'orderby' => 'meta_value ',

    回答ありがとうございます。
    以下を指定してもソートはできなかったです。
    そもそも表示エラーになってしまいます…

    'orderby' => 'meta_value ',

    表示エラーとはどのような状態でしょうか?

    エラーメッセージが表示されていない場合はデバッグモードを有効にしてみてください。

    lineでエラー表示されます。

    ‘order’ => ‘ASC’,
    ‘meta_key’ => ‘時間’,
    ‘orderby’ => ‘meta_value ‘,

    ここを抜くと表示されます。

    カンマかな?

    'post_status' => 'publish'
    'order' => 'ASC',

    'post_status' => 'publish',
    'order' => 'ASC',

    回答ありがとうございます。
    カンマではなかったです…。
    (コピーしてここに書き込んでる時に間違って消えただけ)

    「lineでエラー表示されます」の意味はちょっと分からないのですが、「カンマではなかったです」というのは、そのエラー表示に従って修正したということでしょうか?

    トピック投稿者 mono0517

    (@mono0517)

    line16とかでエラーが表示されていたのは
    ‘orderby’ => ‘meta_value ‘,
    と記載すべきところを
    ‘orderby’ => ‘time’,
    と書いてたからのようです。

          'order' => 'ASC',
          'meta_key' => '時間',
          'orderby' => 'meta_value',

    ここを削除すると内容は出ますが、Time Pickerでの並び順にはならないです。
    もしかしてその下の書き方が間違ってるとかでしょうか。
    以下の通り書き直すと
    タームだけが出て、内容が出なくなりました。

    <?php
      $taxonomy_slug = 'schedules';
      $post_type_slug = 'schedule';
      $terms = get_terms($taxonomy_slug);
      foreach ( $terms as $value ) {
        echo '<h2><span>'.esc_html($value->name).'</span></h2>';
        $term_slug = $value->slug;
        $args = array(
          'post_type' => $post_type_slug,
          $taxonomy_slug => $term_slug ,
          'posts_per_page' => -1,
          'post_status' => 'publish',
          'order' => 'ASC',
          'meta_key' => '時間',
          'orderby' => 'meta_value',
        );
        $myquery = new WP_Query( $args );
    ?>
    <?php if ( $myquery->have_posts()): ?>
        <dl>
          <?php while($myquery->have_posts()): $myquery->the_post(); ?>
          <dt>
            <?php the_field('time'); ?>//ここがTime Picker
          </dt>
          <dd>
            <p>
              <?php the_title(); ?>//タイトル
            </p>
            //ここに内容
          </dd>
          <?php endwhile; ?>
        </dl>
        <?php endif; ?>
        <?php wp_reset_postdata(); ?>
        <?php } ?>
    • この返信は2年、 2ヶ月前にmono0517が編集しました。
    • この返信は2年、 2ヶ月前にmono0517が編集しました。
    • この返信は2年、 2ヶ月前にmono0517が編集しました。
    トピック投稿者 mono0517

    (@mono0517)

    <?php
      $taxonomy_slug = 'schedules';
      $post_type_slug = 'schedule';
      $terms = get_terms($taxonomy_slug);
      foreach ( $terms as $value ) {
        echo '<h2><span>'.esc_html($value->name).'</span></h2>';
        $term_slug = $value->slug;
        $args = array(
          'post_type' => $post_type_slug,
          $taxonomy_slug => $term_slug ,
          'posts_per_page' => -1,
          'post_status' => 'publish',
          'order' => 'ASC',
          'meta_key' => 'time',
          'orderby' => 'meta_value',
        );
        $myquery = new WP_Query( $args );
    ?>

    これで自己解決しました。
    お手数をおかけしました。

9件の返信を表示中 - 1 - 9件目 (全9件中)
  • トピック「ターム内のTime Pickerで並べ替え」には新たに返信することはできません。