まえがき
半年近く Wordpress 触ってなかったら色々忘れてハマったのでメモ。
最終的に Codex を、ちゃんと見たら一発で解決したんだけど。。。
投稿データの配列を作成する
Wordpressでカスタム投稿タイプを作って、
特定のタクソノミーに属する特定のタームだけを出力したいという時は、
get_posts
に下記のような配列を渡す。
php:example.php
<?php
$customPostArg = array(
'posts_per_page' => 5,
'post_type' => 'customposts', // カスタム投稿タイプ名
'tax_query' => array(
array(
'taxonomy' => 'customposts_taxonomy', // カスタムタクソノミー名
'field' => 'slug', // ターム名を term_id,slug,name のどれで指定するか
'terms' => 'customposts_taxonomy_terms' // タクソノミーに属するターム名
)
)
);
$customPosts = get_posts($customPostArg);
?>
投稿データの配列に基いてループを作成する
あとは下記のように foreach
で回してあげればイケる。
※記事へのパーマリンクとタイトルだけのシンプルなものだけど。
php:example.php
<?php if($customPosts): foreach ($customPosts as $post): setup_postdata( $post ); ?>
<div><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></div>
<?php endforeach; endif; ?>
foreach
終わったあとに wp_reset_postdata();
しなきゃダメなのかな??
その辺はちょっとわからんです。
参考サイト
カスタム投稿タイプとカスタムタクソノミーまとめ(KoToRi Blog)
正直、なんとな〜くで作業していた、カスタム投稿タイプに付随するそれぞれのワードはここで理解した。
WordPress Codex日本語版(テンプレートタグ/get_posts)
お世話になってます。
本来ここちゃんと見れば大体の事はできるようなサイトになってるとは思うんだけどね。
英語読めれば英語版のが最新情報が掲載されていそうだけど、英語わかんねぇです。