teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

解決方法コード修正

2018/01/01 16:42

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -39,20 +39,23 @@
39
39
  ##解決したコード
40
40
  無事解決しました。やりたいことを色々と織り交ぜすぎてシンプルにできるところをしていなかったため、コードがぐちゃぐちゃになってしまったのが原因かと思います。
41
41
  ```ここに言語を入力
42
+ <?php
43
+ $terms = get_field('author_article_list');
44
+ if( $terms ): ?>
45
+ <ul>
46
+ <?php foreach( $terms as $term ): ?>
42
- <li><a href="<?php echo get_term_link( $term ); ?>"><?php $ctm = get_post_meta($post->ID, 'header_images', true);?>
47
+ <li><a href="<?php echo get_term_link( $term ); ?>">
43
- <?php if(empty($ctm)):?><!-- // なぜ$post->ID の 'header_images' を基準に分岐しているのかが意味がわからない。$termの画像を出すのが主目的なのでは? -->
44
48
  <?php
45
- $term_sp = get_the_terms( $post->ID, 'articlecat' ); // get_the_termsは当該記事に所属するterm情報を配列で返すのでなぜ使っているかがわからない。$termにidが入っているなら、get_term_by( 'id', $term, 'articlecat' )じゃね?
49
+ $term_sp = get_term_by( 'id', $term, 'articlecat' );
46
- $term_idsp = 'articlecat_'.$term_id; // どこから$term_idが出てきたんだろう。100歩譲って「$term_sp[0]->term_id」だろうな、と思う。get_term_byを使った場合「$term_sp->term_id」。
50
+ $term_idsp = 'articlecat_'.$term_sp->term_id;
47
51
  $photo = get_field('cat_images_02',$term_idsp);
48
52
  $photosp = wp_get_attachment_image_src($photo, 'full');
49
53
  ?>
50
- <img src="<?php echo $photosp[0]; ?>" alt="<?php echo $term_name; ?>"><!-- // $term_name はどこから来た?get_term_byを使った場合「$term_sp->name」。 -->
54
+ <img src="<?php echo $photosp[0]; ?>" alt="<?php echo $term_sp->name ?>">
55
+ </a>
56
+ </li>
57
+ <?php endforeach; ?>
58
+ </ul>
51
- <?php else : ?>
59
+ <?php endif; ?>
52
- <?php
53
- $icatchimage = wp_get_attachment_image_src(get_field('header_images'), 'full');
54
- ?>
55
- <img src="<?php echo $icatchimage[0]; ?>" alt="<?php echo get_the_title(get_field('header_images')) ?>" />
56
- <?php endif;?></a></li>
57
60
  ```
58
61
  画像の呼び出し方が悪いのはわかっているものの、うまくいかないのでご教授お願いいたします。

1

解決方法追記

2018/01/01 16:42

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -36,4 +36,23 @@
36
36
  <?php endif; ?>
37
37
  ```
38
38
 
39
+ ##解決したコード
40
+ 無事解決しました。やりたいことを色々と織り交ぜすぎてシンプルにできるところをしていなかったため、コードがぐちゃぐちゃになってしまったのが原因かと思います。
41
+ ```ここに言語を入力
42
+ <li><a href="<?php echo get_term_link( $term ); ?>"><?php $ctm = get_post_meta($post->ID, 'header_images', true);?>
43
+ <?php if(empty($ctm)):?><!-- // なぜ$post->ID の 'header_images' を基準に分岐しているのかが意味がわからない。$termの画像を出すのが主目的なのでは? -->
44
+ <?php
45
+ $term_sp = get_the_terms( $post->ID, 'articlecat' ); // get_the_termsは当該記事に所属するterm情報を配列で返すのでなぜ使っているかがわからない。$termにidが入っているなら、get_term_by( 'id', $term, 'articlecat' )じゃね?
46
+ $term_idsp = 'articlecat_'.$term_id; // どこから$term_idが出てきたんだろう。100歩譲って「$term_sp[0]->term_id」だろうな、と思う。get_term_byを使った場合「$term_sp->term_id」。
47
+ $photo = get_field('cat_images_02',$term_idsp);
48
+ $photosp = wp_get_attachment_image_src($photo, 'full');
49
+ ?>
50
+ <img src="<?php echo $photosp[0]; ?>" alt="<?php echo $term_name; ?>"><!-- // $term_name はどこから来た?get_term_byを使った場合「$term_sp->name」。 -->
51
+ <?php else : ?>
52
+ <?php
53
+ $icatchimage = wp_get_attachment_image_src(get_field('header_images'), 'full');
54
+ ?>
55
+ <img src="<?php echo $icatchimage[0]; ?>" alt="<?php echo get_the_title(get_field('header_images')) ?>" />
56
+ <?php endif;?></a></li>
57
+ ```
39
58
  画像の呼び出し方が悪いのはわかっているものの、うまくいかないのでご教授お願いいたします。