こちらのサイトを参考に、WordpressにJSONの固定ページを作成しました。
https://temari.co.jp/blog/2020/09/27/wordpress-3/
設定自体はできていて、タイトル・サムネイル等の取得はできるのですが、カテゴリーとタグだけがArray になってしまい取得が出来ません。
書き出し方が悪いのでしょうか…?
PHP(Wordpress側)
1<?php 2/* 3Template Name: JSON 4*/ 5 6$args = array( 7 'numberposts' => -1, //全件 8); 9$posts = get_posts($args); 10 11if($posts): foreach($posts as $post): 12 13 $category_list = []; 14 $cat_list = get_the_category(); 15 foreach ($cat_list as $cat) { 16 array_push($category_list, $cat->name); 17 } 18 19 $tag_list = []; 20 $term_list = get_the_tags(); 21 foreach ($term_list as $term) { 22 array_push($tag_list, $term->name); 23 } 24 25 $json[] = array( 26 'id' => get_the_ID(), 27 'date' => get_the_date(), 28 'title' => get_the_title(), 29 'url' => get_the_permalink(), 30 'img' => get_the_post_thumbnail_url('', 'full' ), 31 'thumbnail' => get_the_post_thumbnail_url('', 'thumbnail' ), 32 'category' => $category_list, 33 'tag' => $tag_list, 34 'description' => get_the_excerpt(), 35 ); 36 37endforeach; endif; 38header("Content-Type: application/json; charset=utf-8"); 39echo json_encode($json, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES); 40 41?>
PHP(出力側)
1<?php 2 3$url = 'http://example.com/json/'; 4$json = mb_convert_encoding(file_get_contents($url), 'UTF8', 'ASCII,JIS,UTF-8,EUC-JP,SJIS-WIN'); 5$arr = json_decode($json,true); 6 7$json_list = array_slice($arr, 0, 5); 8foreach($json_list as $data): ?> 9 <div style="margin-top: 1rem;"> 10 <p><img src="<?php echo $data['img']; ?>"></p> 11 <h1><?php echo $data['title']; ?></h1> 12 <p class="id"><?php echo $data['id']; ?></p> 13 <time><?php echo $data['date']; ?></time> 14 <p class="url"><a href="<?php echo $data['url']; ?>"><?php echo $data['url']; ?></a></p> 15 <p class="category"><?php echo $data['category']; ?></p> 16 <p class ="tag"><?php echo $data['tag']; ?></p> 17 <p><?php echo $data['description']; ?></p> 18 </div> 19<?php endforeach ?>
HTML
1 <div style="margin-top: 1rem;"> 2 <p><img src="http:://example.com/example01.jpg"></p> 3 <h1>記事タイトル1</h1> 4 <p class="id">01</p> 5 <time>2022-08-23</time> 6 <p class="url"><a href="http:://example.com/article01/">http:://example.com/article01/</a></p> 7 <p class="category">Array</p> 8 <p class="tag">Array</p> 9 <p>記事本文01</p> 10 </div> 11 <div style="margin-top: 1rem;"> 12 <p><img src="http:://example.com/example02.jpg"></p> 13 <h1>記事タイトル2</h1> 14 <p class="id">02</p> 15 <time>2022-08-24</time> 16 <p class="url"><a href="http:://example.com/article02/">http:://example.com/article02/</a></p> 17 <p class="category">Array</p> 18 <p class="tag">Array</p> 19 <p>記事本文02</p> 20 </div> 21 <div style="margin-top: 1rem;"> 22 <p><img src="http:://example.com/example03.jpg"></p> 23 <h1>記事タイトル3</h1> 24 <p class="id">03</p> 25 <time>2022-08-25</time> 26 <p class="url"><a href="http:://example.com/article03/">http:://example.com/article03/</a></p> 27 <p class="category">Array</p> 28 <p class="tag">Array</p> 29 <p>記事本文03</p> 30 </div> 31 <div style="margin-top: 1rem;"> 32 <p><img src="http:://example.com/example04.jpg"></p> 33 <h1>記事タイトル4</h1> 34 <p class="id">04</p> 35 <time>2022-08-26</time> 36 <p class="url"><a href="http:://example.com/article04/">http:://example.com/article04/</a></p> 37 <p class="category">Array</p> 38 <p class="tag">Array</p> 39 <p>記事本文04</p> 40 </div> 41 <div style="margin-top: 1rem;"> 42 <p><img src="http:://example.com/example05.jpg"></p> 43 <h1>記事タイトル5</h1> 44 <p class="id">05</p> 45 <time>2022-08-27</time> 46 <p class="url"><a href="http:://example.com/article05/">http:://example.com/article05/</a></p> 47 <p class="category">Array</p> 48 <p class="tag">Array</p> 49 <p>記事本文05</p> 50 </div>
実現したいこと
以下のように、カテゴリー・タグがきちんと出力されるようにしたい。
HTML
1 <div style="margin-top: 1rem;"> 2 <p><img src="http:://example.com/example01.jpg"></p> 3 <h1>記事タイトル1</h1> 4 <p class="id">01</p> 5 <time>2022-08-23</time> 6 <p class="url"><a href="http:://example.com/article01/">http:://example.com/article01/</a></p> 7 <p class="category">カテゴリー1</p> 8 <p class="tag">タグ1, タグ2</p> 9 <p>記事本文01</p> 10 </div> 11 <div style="margin-top: 1rem;"> 12 <p><img src="http:://example.com/example02.jpg"></p> 13 <h1>記事タイトル2</h1> 14 <p class="id">02</p> 15 <time>2022-08-24</time> 16 <p class="url"><a href="http:://example.com/article02/">http:://example.com/article02/</a></p> 17 <p class="category">カテゴリー2</p> 18 <p class="tag">タグ2</p> 19 <p>記事本文02</p> 20 </div> 21 <div style="margin-top: 1rem;"> 22 <p><img src="http:://example.com/example03.jpg"></p> 23 <h1>記事タイトル3</h1> 24 <p class="id">03</p> 25 <time>2022-08-25</time> 26 <p class="url"><a href="http:://example.com/article03/">http:://example.com/article03/</a></p> 27 <p class="category">カテゴリー1, カテゴリー2</p> 28 <p class="tag">タグ1</p> 29 <p>記事本文03</p> 30 </div> 31 <div style="margin-top: 1rem;"> 32 <p><img src="http:://example.com/example04.jpg"></p> 33 <h1>記事タイトル4</h1> 34 <p class="id">04</p> 35 <time>2022-08-26</time> 36 <p class="url"><a href="http:://example.com/article04/">http:://example.com/article04/</a></p> 37 <p class="category">カテゴリー1</p> 38 <p class="tag">タグ2</p> 39 <p>記事本文04</p> 40 </div> 41 <div style="margin-top: 1rem;"> 42 <p><img src="http:://example.com/example05.jpg"></p> 43 <h1>記事タイトル5</h1> 44 <p class="id">05</p> 45 <time>2022-08-27</time> 46 <p class="url"><a href="http:://example.com/article05/">http:://example.com/article05/</a></p> 47 <p class="category">カテゴリー1, カテゴリー2</p> 48 <p class="tag">タグ1, タグ2</p> 49 <p>記事本文05</p> 50 </div>
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/08/23 04:53