Почему файл получает содержимое, возвращающее источник страницы?


Я пытаюсь написать шорткод в своей теме functions.php файл, который может отображать содержимое CSV-файла на нашем сервере.

Я буду беспокоиться о чтении CSV-файла в массивы и тому подобное позже, но сейчас я просто хочу убедиться, что могу прочитать содержимое файла с помощью file_get_contents. Однако, когда я запускаю шорткод ниже, предупреждение содержит HTML.

function display_csv_data_func( $atts ) {
   $file_contents = file_get_contents("http://example.com/something/file.csv");
   return "<script>alert('" . $file_contents . "');</script>";
}
add_shortcode( 'display_csv_data', 'display_csv_data_func' );

Возвращает:

alert('
<!doctype html>
<!--[if lt IE 7 ]> <html class="no-js ie6" lang="en-US"
...

Есть ли что-то о коротких кодах, functions.php или WordPress в целом, который мешает моему коду? Похоже, это должно быть довольно просто сделать...

Author: jeffbeene, 2017-03-04

1 answers

Ага, я все понял! Вы должны использовать wp_remote_get(). Я не совсем уверен, почему на данный момент, но вот как выглядит код:

function display_csv_data_func( $atts ) {
   $file_path = "http://example.com/something/file.csv";
   $response = wp_remote_get($file_path);
   $response_body = wp_remote_retrieve_body($response);
   return "<script>alert('" . $response_body . "');</script>";
}
add_shortcode( 'display_csv_data', 'display_csv_data_func' );
 1
Author: jeffbeene, 2017-03-05 00:16:59