Wordpressの投稿オブジェクトの値を用いたソートと並び替え
解決したいこと
Wordpressの投稿オブジェクトの値を用いたソートと並び替えについて質問です。
■扱っているデータ
- アーティスト情報
- アーティストに関連するコンサート情報が投稿オブジェクトで紐付けされている。
- コンサート情報
- 日付情報(カスタムフィールド名:date)
- カスタムフィールドはAdvanced custom fieldsを使って登録しております。
発生している問題・エラー
- 投稿オブジェクトの出力は https://hirashimatakumi.com/blog/7.html
の方法で成功したが、日付ごとの並び替えと非公開投稿の非表示などの条件の加え方がわからない。
▼紹介されているコード
<?php $acf_post_objects = get_field('post_objects'); if( $acf_post_objects ): ?>
<ul>
<?php foreach( $acf_post_objects as $post): // ループの開始 ?>
<?php setup_postdata($post); // 重要! setup_postdata でポストオブジェクトを呼び出します ?>
<li>
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
<span>カスタムフィールド<?php the_field('field_name'); ?></span>
</li>
<?php endforeach; // ループの終了 ?>
</ul>
<?php wp_reset_postdata(); // ページの残りの部分は正常に動作するように、ポストオブジェクトをリセットします ?>
<?php endif; ?>
上記に絞り込みや並び替えの条件を加えるには、どのように記述したら良いのでしょうか。
自分では、$argsの部分に条件を書いてみたのですが、
投稿の並びに特に変化がありませんでした。
▼自分で書いてみたコード
<?php
$acf_post_objects = get_field('relate-concerts');
$args = array(
'post_status' => 'publish',
'meta_key' => 'relate-concerts' ...
);
$the_query = new WP_Query( $args ); ?>
<?php if( $acf_post_objects ): ?>
<?php foreach ($acf_post_objects as $post) : ?>
<?php setup_postdata($post); ?>
// ループする内容
<?php endforeach; ?>
<?php wp_reset_postdata(); ?>
<?php else : ?>
<p>ループするものがありません。</p>
<?php endif; ?>
PHPに慣れておらず基本的なことがわかっていないかもしれないのですが、
数日調べたり考えても全く進展がなく、質問させていただきました。
どうかよろしくお願いいたします。
0