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

回答編集履歴

6

コードの微調整

2021/12/24 04:36

投稿

nekora
nekora

スコア501

answer CHANGED
@@ -1,4 +1,4 @@
1
- ### コードをさらに修正しました。度目の正直、これで、うまくいくと思います。
1
+ ### コードをさらにさらに修正しました。度目の正直、これで、うまくいくと思います。
2
2
 
3
3
  ---
4
4
 
@@ -26,7 +26,7 @@
26
26
  array( //タクソノミー指定の時はarrayのarrayでないといけない
27
27
  'taxonomy' => 'position',
28
28
  'field' => 'slug',
29
- 'terms' => array('position3'), //タームズなのでスラッグをarrayで指定。カンマで区切れば複数指定できるので汎用性が高い('field'が'slug'なので)
29
+ 'term' => 'position3', //('field'が'slug'なので)
30
30
  )
31
31
  )
32
32
  );

5

コードの修正

2021/12/24 04:35

投稿

nekora
nekora

スコア501

answer CHANGED
@@ -48,6 +48,7 @@
48
48
  </div>
49
49
  <?php endforeach;?>
50
50
  <?php else:?>
51
+ <!-- 要素が取れなかった時もそれがはっきり分かるようにif文のelseでその旨を出力するようにしたほうがいいです -->
51
52
  <P>該当する記事はありません</p>
52
53
  <?php
53
54
  endif;

4

コードの修正

2021/12/23 20:20

投稿

nekora
nekora

スコア501

answer CHANGED
@@ -26,7 +26,7 @@
26
26
  array( //タクソノミー指定の時はarrayのarrayでないといけない
27
27
  'taxonomy' => 'position',
28
28
  'field' => 'slug',
29
- 'terms' => array('position3'), //タームズなのでスラッグをarrayで指定('field'が'slug'なので)
29
+ 'terms' => array('position3'), //タームズなのでスラッグをarrayで指定。カンマで区切れば複数指定できるので汎用性が高い('field'が'slug'なので)
30
30
  )
31
31
  )
32
32
  );
@@ -46,8 +46,7 @@
46
46
  <h2 class="member__inner__flex__box__name"><?php echo get_the_title($post->ID); ?></h2>
47
47
  </a>
48
48
  </div>
49
- <?php
50
- endforeach;?>
49
+ <?php endforeach;?>
51
50
  <?php else:?>
52
51
  <P>該当する記事はありません</p>
53
52
  <?php

3

コードの修正 説明の修正

2021/12/23 14:53

投稿

nekora
nekora

スコア501

answer CHANGED
@@ -1,6 +1,12 @@
1
- ### 回答のメントでいただいた問題点についてコードを精査したところおかしな点気付きましたのしてみした
1
+ ### コードをさら修正しました。三度目、これで、うくいくと思います
2
- ### これで、再度試してみて下さい。
3
2
 
3
+ ---
4
+
5
+ 回答のコメントでいただいた問題点についてコードを精査したところおかしな点に気付きましたので直してみました。
6
+ これで、再度試してみて下さい。
7
+
8
+ ---
9
+
4
10
  if文で判定した後、表示してendifなので1つしか出ないのは当たり前です。
5
11
  get_postsの公式リファレンスに使い方が書いてあります。
6
12
  [get_postsの公式リファレンス](https://wpdocs.osdn.jp/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%82%BF%E3%82%B0/get_posts)
@@ -17,38 +23,40 @@
17
23
  'orderby' => 'date', // 日付でソート
18
24
  'order' => 'DESC', // DESCで新しい、ASCで古い順に表示
19
25
  'tax_query' => array( //タクソノミーに関する指定はこの中にすべて
20
- array( //タクソノミー指定の時はarrayのarrayないといけない
26
+ array( //タクソノミー指定の時はarrayのarrayないといけない
21
- 'taxonomy' => 'position',
27
+ 'taxonomy' => 'position',
22
- 'field' => 'slug',
28
+ 'field' => 'slug',
23
- 'terms' => 'position3', //タームスラッグで指定('field'が'slug'なので)
29
+ 'terms' => array('position3'), //タームズなのでスラッグをarrayで指定('field'が'slug'なので)
24
30
  )
25
31
  )
26
32
  );
27
33
  $posts = get_posts( $args );
28
34
  if ( $posts ): ?>
29
- <?php foreach ( $posts as $post ) : setup_postdata( $post ); ?>
35
+ <?php foreach ( $posts as $post ) : setup_postdata( $post ); ?>
30
- <h3 class="member__inner__title"><?php the_field('position3'); ?></h2>
36
+ <h3 class="member__inner__title"><?php the_field('position3', $post->ID); ?></h2>
31
- <div class="member__inner__flex">
37
+ <div class="member__inner__flex">
32
- <a href="<?php the_permalink(); ?>" class="member__inner__flex__box">
38
+ <a href="<?php echo get_permalink($post->ID); ?>" class="member__inner__flex__box">
33
- <figure class="member__inner__flex__box__img">
39
+ <figure class="member__inner__flex__box__img">
34
- <?php if ( has_post_thumbnail() ): ?>
40
+ <?php if ( has_post_thumbnail($post->ID) ): ?>
35
- <?php the_post_thumbnail(); ?>
41
+ <?php echo get_the_post_thumbnail($post->ID); ?>
36
- <?php else: ?>
42
+ <?php else: ?>
37
- <img src="<?php echo get_template_directory_uri(); ?>/img/ni1.png" alt="西川カメラ1" alt="" class="">
43
+ <img src="<?php echo get_template_directory_uri(); ?>/img/ni1.png" alt="西川カメラ1" alt="" class="">
38
- <?php endif; ?>
44
+ <?php endif; ?>
39
- </figure>
45
+ </figure>
40
- <h2 class="member__inner__flex__box__name"><?php the_title(); ?></h2>
46
+ <h2 class="member__inner__flex__box__name"><?php echo get_the_title($post->ID); ?></h2>
41
- </a>
47
+ </a>
42
- </div>
48
+ </div>
43
- <?php
49
+ <?php
44
- endforeach;
50
+ endforeach;?>
51
+ <?php else:?>
52
+ <P>該当する記事はありません</p>
53
+ <?php
45
54
  endif;
46
55
  wp_reset_postdata();
47
56
  ?>
48
57
  </div>
49
58
  </section>
50
59
  ```
51
-
52
60
  これでいけるはずですが、環境が違うためテストまではしていません。値が取れてない等ありましたらコメントください。できるだけ対応いたします。
53
61
 
54
62
  コードブロックの右上のボタンでコード全体をコピーできますので、ご自分の環境に張り付けてテストしてみてください。

2

説明文の修正

2021/12/23 14:23

投稿

nekora
nekora

スコア501

answer CHANGED
@@ -1,5 +1,5 @@
1
1
  ### 回答のコメントでいただいた問題点についてコードを精査したところおかしな点に気付きましたので直してみました。
2
- これで、再度試してみて下さい。
2
+ ### これで、再度試してみて下さい。
3
3
 
4
4
  if文で判定した後、表示してendifなので1つしか出ないのは当たり前です。
5
5
  get_postsの公式リファレンスに使い方が書いてあります。

1

コメントを受けて、コードを精査しおかしな点を見つけたので修正

2021/12/23 04:28

投稿

nekora
nekora

スコア501

answer CHANGED
@@ -1,3 +1,6 @@
1
+ ### 回答のコメントでいただいた問題点についてコードを精査したところおかしな点に気付きましたので直してみました。
2
+ これで、再度試してみて下さい。
3
+
1
4
  if文で判定した後、表示してendifなので1つしか出ないのは当たり前です。
2
5
  get_postsの公式リファレンスに使い方が書いてあります。
3
6
  [get_postsの公式リファレンス](https://wpdocs.osdn.jp/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%82%BF%E3%82%B0/get_posts)
@@ -14,9 +17,11 @@
14
17
  'orderby' => 'date', // 日付でソート
15
18
  'order' => 'DESC', // DESCで新しい、ASCで古い順に表示
16
19
  'tax_query' => array( //タクソノミーに関する指定はこの中にすべて
20
+ array( //タクソノミー指定の時はarrayのarray出ないといけない
17
- 'taxonomy' => 'position',
21
+ 'taxonomy' => 'position',
18
- 'field' => 'slug',
22
+ 'field' => 'slug',
19
- 'terms' => 'position3', //タームをスラッグで指定('field'が'slug'なので)
23
+ 'terms' => 'position3', //タームをスラッグで指定('field'が'slug'なので)
24
+ )
20
25
  )
21
26
  );
22
27
  $posts = get_posts( $args );