回答編集履歴

2

見直し。

2022/07/07 07:05

投稿

退会済みユーザー
test CHANGED
@@ -27,12 +27,12 @@
27
27
  endforeach;
28
28
  endif;
29
29
 
30
- echo $result;
30
+ return $result;
31
31
 
32
32
  wp_reset_postdata();
33
33
 
34
34
  }
35
35
  ```
36
36
  やろうとしていることは、変数に、出力したいHTML文字列を連結して溜め込んで、
37
- 最後に `echo $result;`を置いて出力するか、`return $result;`にする。
37
+ 最後に `return $result;`にする。
38
38
  [PHP: 文字列 \- Manual](https://www.php.net/manual/ja/language.types.string.php#language.types.string.syntax.heredoc)のヒアドキュメント構文、変数のパースを参照のこと。

1

回答を全面的に見直します

2022/07/07 07:03

投稿

退会済みユーザー
test CHANGED
@@ -1,8 +1,38 @@
1
1
  HTMLを含んだ文字列を納める変数を立てて、
2
2
  変数を加工したらいいんじゃないですかね。
3
3
 
4
- だ、WordPress関数らっ呼び出したその場で即出力しちゃうようなら、
4
+ 念のWordPress関数を調べみる:
5
- この作戦は無理なので、
5
+ [関数リファレンス/setup postdata \- WordPress Codex 日本語版](https://wpdocs.osdn.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/setup_postdata)
6
- 別途クライアント側(webブラウザ上)でDOM操作する手を打つことになるかと。
6
+ [テプレータグ/get posts \- WordPress Codex 日本語版](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)
7
- お行儀悪いけど、HTML出力してるさなかに
7
+ これら直接HTML出力ことはなそうので
8
+ こういう作戦にする。
9
+
10
+ ```php
11
+ <?php
12
+ <?php
13
+ public static function get_html() {
14
+
15
+ $args = array(省略);
16
+ $posts = get_posts($args);
17
+
18
+ $result = '';
19
+
20
+ if ($posts) :
21
+ foreach ($posts as $post) :
22
+ setup_postdata($post);
23
+ $result .= <<<EOT
24
+ <h1>{$post->post_title}</h1>
25
+ <p>テスト</p>
26
+ EOT;
27
+ endforeach;
28
+ endif;
29
+
30
+ echo $result;
31
+
32
+ wp_reset_postdata();
33
+
34
+ }
35
+ ```
8
- 突然scriptタグを出力してDOM操作するコードめ込とか。
36
+ やろうとしていることは、変数に、出力したいHTML文字列連結して溜め込んで
37
+ 最後に `echo $result;`を置いて出力するか、`return $result;`にする。
38
+ [PHP: 文字列 \- Manual](https://www.php.net/manual/ja/language.types.string.php#language.types.string.syntax.heredoc)のヒアドキュメント構文、変数のパースを参照のこと。