###実現したいこと
WordPressにてJSONを表示するだけの1ページしかないサイトを作成中です。
たとえばFirefoxで見るとJSONが、配列の部分が畳める表示になりますよね。ああいったものを目標にしています。
###JSON出力のコード
まずJSONを出力する関数として以下echoJson()
を前提にさせて頂きます。(wp_postsなどWordPressのDBから取得するものではないです。)
■functions.php
php
1<?php 2add_theme_support( 'html5', array( 'search-form', 'comment-form', 'comment-list', 'gallery', 'caption' ) ); 3 4// 管理バー不要 5add_filter( 'show_admin_bar', '__return_false' ); 6if ( !current_user_can('administrator') || !is_admin() ) { 7 add_filter( 'show_admin_bar', '__return_false' ); 8} 9 10// JSON出力 11function echoJson(){ 12 $data = [ 'name' => 'God', 'age' => -1 ]; 13 header('Content-type: application/json'); 14 echo json_encode( $data ); 15}
全体のコード1
まず試したのが上記header('Content-type: application/json');
の記述で、以下3つのファイル構成です。
しかし普通に文字列で表示されるだけで、畳める表示にはできませんでした。
■header.php
php
1<!DOCTYPE html> 2<html> 3<head> 4 <meta name="robots" content="noindex, nofollow"> 5 <?php wp_head(); ?> 6</head> 7<body>
■index.php
php
1<?php 2get_header(); 3echoJson(); 4get_footer();
■footer.php
php
1<?php wp_footer(); ?> 2</body> 3</html>
全体のコード2
なんて畳める表示にならないのか?
考えたのがドックタイプ宣言などが不要なのではないかということで、以下のようにindex.phpへの記述だけにしたら畳める表示ができました。
■header.php
php
■index.php
php
1<?php 2echoJson();
■footer.php
php
###質問
質問になりますが、この「全体のコード2」は問題ないのでしょうか?
目的は畳める表示でechoJson();
を出力することなので、例えば"noindex, nofollow"
もあった方がよさそうに思いますし(クローラーは来てくれなくていいですし)。
また、これはなんとなく考えてできちゃったというパターンなので、他にも何か問題が起こる可能性がないかと不安が頭をよぎっています。
正しい方法や、想定される問題について思い当たる方、アドバイス頂けましたらうれしいのですが、こういったJSON出力のご経験をお持ちの方いらっしゃるでしょうか。。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。