急遽WordPressを触らないといけない事になりキャッチアップのフローを、ノート代わりにまとめていきます。
主に自分の学習の流れを振り返りで残す形なので色々、省いてます。
Webエンジニアの諸先輩方からアドバイスやご指摘を頂けたらありがたいです!
#特定のフィールド項目が記入されている記事を表示させたい!
最新記事を表示させる方法は調べたら直ぐに見つかりました。
・特定の記事だけ最新の5つ取得したい
・最新記事5件を出力する方法
ただ、特定のフィールをを記入されている記事に絞り込むのにちょっと時間がかかりました。
このコードで表示できた!
<?php
$args = array(
'post_type' => 'posts',
'posts_per_page' => 6,
'meta_key' => 'title',
'meta_value' => ' ',
'meta_compare'=> '!='
);
$my_query = new WP_Query( $args );
if ($my_query->have_posts()) :
while ($my_query->have_posts()) : $my_query->the_post();
?>
<article>
<a href="<?php the_permalink(); ?>">
<div>
<p><?php the_field('title'); ?></p>
</div>
</a>
</article>
<?php endwhile; ?>
<?php endif; ?>
<?php wp_reset_postdata(); ?>
軽く説明
①ここでは表示させたい投稿記事を絞り込んでいます。
まず、投稿タイプ「posts」を指定
「posts_per_page」で何件表示させるか指定
「meta_key」ではフィールド名を指定
「meta_value」では値が空の場合「meta_compare」で表示させない。
つまり、titleの値を記述されている記事のみを絞り込んでいます。
今回は、ややこしい記述になりましたがもっと良い記述があれば教えて頂ければ幸いです。
$args = array(
'post_type' => 'posts',
'posts_per_page' => 6,
'meta_key' => 'title',
'meta_value' => ' ',
'meta_compare'=> '!='
);
$my_query = new WP_Query( $args );
②あとはいつも通り記事を表示するループ文を記述
if ($my_query->have_posts()) :
while ($my_query->have_posts()) : $my_query->the_post();
?>
<article>
<a href="<?php the_permalink(); ?>">
<div>
<p><?php the_field('title'); ?></p>
</div>
</a>
</article>
<?php endwhile; ?>
<?php endif; ?>
##参考にした記事
wp_reset_postdata(); は、どこに書けばいいですか?
wordpress 記事一覧で特定の記事を除外する
カスタム投稿タイプの新着記事を表示する
カスタムフィールドの有無を判定して処理を分岐する -『wordpress』