yah!!さん、ご回答ありがとうございます。
カスタムフィールドの値を持つようにするとのことで、ヒントページを見てみましたが、こちらもフィールドの個別名称を入力しなければならないので思う動作ができそうもありませんでした。
自分の記事と同じ種類aを判断して自動で種類aに所属する記事を取得したいのです。
下記ページでかなり近い感じで実現できましたが、この場合だと一つの商品ごとにカテゴリを作成しなければならないため、カテゴリが増えてしまいますし、カテゴリとしての本来の使い方ができませんでした。
http://ja.forums.wordpress.org/topic/8619?replies=3
<?php $tax_posts = get_posts('post_type=typea&taxonomy=typea_category&term='.esc_html($term->slug)); if($tax_posts): ?>
<div class="variation">
<div class="cap">関連する色、サイズ</div>
<ul>
<?php foreach($tax_posts as $tax_post): ?>
<?php if ($post->ID != $tax_post->ID): ?>
<li>
<a href="<?php echo get_permalink($tax_post->ID); ?>"><img alt="<?php the_title(); ?>" width="70" height="70" src="http://xxxxxxxx/<?php echo post_custom('画像コード'); ?>/1/r.jpg" /></a>
<a href="<?php echo get_permalink($tax_post->ID); ?>"><?php echo esc_html($tax_post->post_title); ?></a>
</li>
<?php else: ?>
<li></li>
<?php endif; ?>
<?php endforeach; ?>
</ul>
<?php endif; ?>
カテゴリは様々な種類を設定しているため、できればカテゴリではなく、他のもので実現させたいのですが、何か知恵をおかしいただけないでしょうか。
よろしくお願いします。
トピック投稿者
jdbb
(@jdbb)
今日他のPCで見てみたら何故か書込みできていなかったようですのでもう一度。
(家のPCでは今普通に見えているのに・・・)
/*———————————–
* 以下引用
————————————*/
あけましておめでとうございます。
ぱっと思いつく方法としては3つほどあります。
1・nagaib様のいうようなタグ(もしくはカテゴリ、タクソノミ)で種類ごとに分ける方法
2・advanced custom fieldsでの関連ポストを手動で登録(カスタムフィールドにIDでも)
3・プラグインYet Another Related Posts Pluginを使用する方法
1については商品数が多ければ多いほど大変になることです。
Simple Tagsなどのプラグインを使用して管理すればいいかと思います。
2については手動のため1と同様に商品が多くなるほどに関連商品を探すのが大変になります
3については自動ですが結構サーバコストがかかるようです(以前共用のレンタルサーバにいれてみたら規制されてしまいました)のでキャッシュプラグイン等との連携が必要になるかもしれません
上記からやはりnagaib様のおっしゃるタグに合わせてsimple tagsなどで管理するほうがいいかと思います。
で、取得する方法としてはquery_postsまで辿り着いたのであれば公式のリファレンスに色々と使い方などが書いてあります。
同じタグの投稿を取得する手順は
1・現在表示されている投稿(商品)のタグを取得する get_the_tags
2・1で取得したタグ情報をquery_postsに渡せるよう整形する(方法は色々ありますがimplodeで)
3・2で整形したタグの情報をquery_postsのtagに渡す
でやってやればいいと思います。
//1
$product_tags = get_the_tags();
//2
$product_rel = array();
foreach($product_tags as $pt)
array_push($product_rel,$pt->slug);
$product_tags = implode(',',$product_rel);
//3
query_posts('post_type=atype&posts_per_page=4&orderby=rand&tag='.$product_tags);
あくまでも一例ということで…
あとはループ内で取得したサムネイルやリンクなどを表示する形になります。
/*———————————–
* 追記
————————————*/
なんだろ?ログアウトすると見れない。
投稿していただいていたのですね。ありがとうございます。
Simple Tagsすごい!!これなら希望の表示ができそうです。
と思ったのですが…
お恥ずかしい話なのですが、オリジナルのテンプレートを使っているせいか、うまくカスタム投稿タイプのダッシュボードにSimple Tagsを表示できず、そんなところでつまづいています。
もう少し格闘してみます!ありがとうございました。