タクソノミーを使用した一覧でPDFがある場合だけPDFに直リンクさせたい
-
タクソノミーを使用した一覧で
PDFがある場合だけPDFに直リンクする。
PDFがない場合は詳細ページにリンクする。
という条件分岐をしたいのですが、うまくできません。。。下記のようにしてもタクソノミーを利用したループ内にあるせいか分岐できません。
<?php if(post_custom('フィールド名')): ?>
if(post_custom())のままですが、やりたいことは下記のようにイメージです。
ご教示頂ければ幸いです。<?php $args = array( 'parent' => 0, 'hierarchical' => 0, 'order' => 'ASC' ); $taxonomy_name = 'タクソノミ名'; $taxonomys = get_terms($taxonomy_name,$args); if(!is_wp_error($taxonomys) && count($taxonomys)): foreach($taxonomys as $taxonomy): $url = get_term_link($taxonomy->slug, $taxonomy_name); $tax_posts = get_posts(array( 'post_type' => get_post_type(), 'posts_per_page' => -1, 'tax_query' => array( array( 'taxonomy'=>'タクソノミ名', 'terms'=>array( $taxonomy->slug ), 'field'=>'slug', 'include_children'=>true, 'operator'=>'IN' ), 'relation' => 'AND' ) )); if($tax_posts): ?><dl> <dt id="<?php echo esc_html($taxonomy->slug); ?>" class="line"><?php echo esc_html($taxonomy->name); ?></dt> <dd> <ul> <?php foreach($tax_posts as $tax_post): ?> <?php if(post_custom('PDFフィールド名')): ?>//PDFがある場合 <?php $cft_pdf = get_post_meta($tax_post->ID, 'PDFフィールド名', true); $cft_pdf = wp_get_attachment_url($cft_pdf, 'full');//pdfファイルパスを取得 ?> <li><a href="<?php echo $cft_pdf; ?>"><?php echo get_the_title($tax_post->ID); ?></a></li> <?php else : ?>//PDFがない場合 <li><a href="<?php echo get_permalink(); ?>"><?php echo get_the_title($tax_post->ID); ?></a></li> <?php endif; ?> <?php endforeach; ?>
2件の返信を表示中 - 1 - 2件目 (全2件中)
-
こんにちわ、igawanさん。
サイトの仕様が分からないので的外れだった場合はすみません。
taxonomy.php を作成して、普通に have_posts() のループを以下のようにすればいいように思うのですが、いかがでしょうか?
※下記ソースコードは未テストですので、ご注意ください。if ( have_posts() ) : while ( have_posts() ) : the_post(); $hoge = get_post_meta( $post->ID, 'hoge', true ); if ( isset( $hoge ) && !empty( $hoge ) ) : // カスタムフィールドの値がある場合 else: // カスタムフィールドの値がない場合 endif; endwhile; else: // 投稿がない endif;
KUCKLUさんありがとうございます!
知識に偏りがある素人なもので
taxonomy.phpだと、URLがどこに出るんのかわからず、、、
「http://hoge.net/?post_type=00」で表示されるarchive-.phpにしてました。そして大変申し訳ない上にお恥ずかしい話なのですが、自己解決しました。
<?php if(post_custom(‘フィールド名’)): ?>じゃなくて、
<?php if(get_post_meta($tax_post->ID, ‘フィールド名’, true)): ?>にすればいいだけでした。。。
if文の使い方を全く理解せず、参考サイトのまま流用しようとしてました。
お手間をお掛けして申し訳ありませんでした。
2件の返信を表示中 - 1 - 2件目 (全2件中)
- トピック「タクソノミーを使用した一覧でPDFがある場合だけPDFに直リンクさせたい」には新たに返信することはできません。