###実現したいこと
このたびはお世話になります。検索しても同様のケースが見当たらず、こちらで質問させて頂きます。宜しくお願い致します。
WordPressで記事をJSONで出力するときに入ってしまう改行を削除したいのですが、可能でしょうか?
発生している問題
該当のソースコードで受け取る値(data)に改行が入ってしまいます。
該当のソースコード
AJAXで下記を読みます。おなじみの記事のループですが、結果をJSONで受け取ります。
↓post-json.php
php
1<?php 2if ( $the_query->have_posts() ) : 3 4 $array = array(); 5 6 while ( $the_query->have_posts() ) : $the_query->the_post(); 7 8 $id = get_the_ID(); 9 $array[] = array( 10 'id' => $id, 11 ); 12 13 endwhile; 14 15 wp_reset_postdata(); 16 17 echo json_encode($array); 18 19endif; 20?>
上記ループで記事がないとき、下記の受け取る値(data)が改行になってしまうのです。
↓post-ajax.php
js
1 $.ajax({ 2 url : url, 3 type : 'POST', 4 }).done( function( data ) { 5 console.log( data ); // 改行が入る 6 if ( ! data ) { 7 console.log('ここで記事がないときの処理をしたいのに、dataに改行が入るからできない'); 8 } 9 })
試したこと
post-json.phpの、最後の「?>」の後には何もないことを確認しました。
またもし最後の「?>」の後にインデントがあれば、改行でなくインデントが受け取る値(data)に入ります。
解決策
最終的には受け取る値によって処理を分岐したいので、
if( ! data ){
}
を
if( ! is_JSON(data) ){
}
のようにして、「値がJSONかどうか」という判定をすれば解決はします。
しかし、納得がいきません。
どうして改行が入るのか?
それを削除するにはどうすればいいのか?
これをどうしても知りたいです。
補足情報(FW/ツールのバージョンなど)
WordPress 5.0.3 です。
回答1件
あなたの回答
tips
プレビュー