0

そのため、私は狂ったように、meta_values のいずれかでイベント (投稿) を整理しようとしましたが、まったく成功しませんでした:

これがコードです(値がA、B、またはCのいずれかであるmeta_keyの「種類」で部族イベントを整理しようとしています)

<?php 

  global $post;

  $current_date = date('j M Y');
  $end_date = $current_date;

  $get_posts = tribe_get_events(array(
    'start_date'=>$end_date,
    'end_date'=>$end_date,
    'posts_per_page'=>3,
    'order'=>'ASC',
    'meta_key'=>'kind',
    'orderby'=>'meta_value', // Each post either has A, B, or C, set as it's meta value, yet it displays the post by date (which is normal), but ignores the meta_values
    ));

  foreach($get_posts as $post) {setup_postdata($post);

?>

      <li>
        <p class="date">
          <a href="<?php the_permalink(); ?>"><span class="month"> <?php echo tribe_get_start_date($post->ID, false, 'M'); ?></span></a> 
          <a href="<?php the_permalink(); ?>"><span class="day"> <?php echo date('d'); ?></span></a>
        </p>
        <p class="info">
          <a href="<?php the_permalink(); ?>"><?php the_title(); ?><i class="icon-chevron-right"></i></a> <?php the_field('kind'); ?> <br><?php echo substr(get_the_excerpt(), 0, 50); ?>...</p>      
        <div class="clear"></div>
      </li>

<?php } //endforeach ?>
<?php wp_reset_query(); ?>
</ul>
<div class="clear"></div>

通常のクエリを実行してソートしようとしても、まだ機能しません (tr​​ibe_get_events が orderby フィルターをオーバーライドしている場合に備えて。

$loop = new WP_Query(array('post_type' => 'tribe_events', 'orderby'=> 'meta_value', 'meta_key'=>'kind'));

しかし、それでも私には何も得られません。

基本的には 3 種類の投稿があります。今日の投稿を表示したいのですが、種類別に並べ替えたいです。タイプ A が最初に表示され、B が 2 番目に、C が 3 番目に表示されます。それがこれらのイベントの優先事項だからです。したがって、結果には AAB が表示されるはずですが、代わりに画像では ABA が表示されているだけです (投稿が公開されたときの順序で表示されます)。

http://cl.ly/image/0W2b2I270d3v

これに2日間費やしましたが、結果はありませんでした。私はこのサイトとGoogle全体にアクセスしてきました/他の開発者に確固たるアドバイスなしで尋ねています:(

4

3 に答える 3

0

アダムは正しい方向に進んでいると思います。プラグインがこれを行う方法はわかりませんが、通常のクエリを実行し、結果から得られた引数を調べました.tribe_eventsは、引数を別の方法で指定した場合でも、event_dateによる順序を強制的にASCにします.

結果の配列で独自の並べ替えを行う方がよい場合があります。

于 2013-09-14T02:39:13.707 に答える
0

わかりました、私はこのプラグインの経験がありませんが、最初の観察を提供できれば幸いです.

public/template-tags/general.php は 167 行で tribe_get_events() を定義しており、TribeEventsQuery::getEvents() を使用しているようです。その静的関数は lib/tribe-event-query.class.php の 645 行目に定義されており、$event_date で順序付けされる $defaults 配列を持っています。渡された配列引数は、そのデフォルト配列によってオーバーライドされているようです。繰り返しますが、このプラグインの経験はまったくありません。@nathansmith がツイートしているのを見て、すぐにダウンロードしてファイルを確認しました。カスタム WP_Query が機能しなかった理由がわかりません。

これで問題が解決しない場合は、さらに詳しく調べることができます。

EDIT:ところで、パスはプラグインディレクトリからの相対パスです。

于 2013-09-13T21:33:26.293 に答える