#php #wordpress #api
#php #wordpress #API
Вопрос:
в настоящее время мне нужно создать веб-сайт с созданием внешнего API, я могу отображать данные, например, я хотел бы, чтобы они отображались в <select>
Однако, когда я создаю свой код, ничего не отображается, однако, если я отображаю его в данных, p отображается, но в таблице, как отобразить данные в <select>
function dog_func ($atts) {
$contents = file_get_contents('https://dog.ceo/api/breeds/list/all');
$contents_arr = json_decode($contents);
echo "<select>" . $contents ."</select>" ;
}
add_shortcode ('dog_api', 'dog_func');
или
function dog_func ($atts) {
$contents = file_get_contents('https://dog.ceo/api/breeds/list/all');
$contents_arr = json_decode($contents);
echo '<select multiple value="$contents"></select>';
}
add_shortcode ('dog_api', 'dog_func');
Во время этих тестов ничего не отображается
И
function dog_func ($atts) {
$contents = file_get_contents('https://dog.ceo/api/breeds/list/all');
$contents_arr = json_decode($contents);
echo "<p>" . $contents ."</p>" ;
}
add_shortcode ('dog_api', 'dog_func');
Пройдите, но отобразите в «gross»
Комментарии:
1. Являются ли ответы просто массивами json со значениями или это объект json, содержащий и другие данные?
2. просто массив со значениями JSON
Ответ №1:
Вы можете сделать это <select>
следующим образом
$contents_arr = json_decode($contents);
echo '<select>';
foreach($contents_arr->message as $key=> $ca){
echo "<option value='".$key."'>" . $key ."</option>" ;
}
echo '</select>';
И для <p>
$contents_arr = json_decode($contents);
foreach($contents_arr->message as $key=> $ca){
echo "<p>" . $key ."</p>" ;
}
На самом деле это объект json, который вы можете декодировать в массив, а затем анализировать его с помощью foreach
цикла
Комментарии:
1. Я пробую ваш пример, но он не работает, проще говоря, я хотел бы очистить свои данные, отображаемые в простом списке, как их очистить {«статус»:»успех»,»сообщение»:{«аффенпинчер»:[],»африканский»: [],»эрдельтерьер»:[], «акита»:[], «аппенцеллер»:[], «басенджи»:[], «бигль»:[], «блютик»:[], «борзой»:[]…..}
2. Чистый смысл ?.
3. Очистите это {«status»:»success»,»message»:{«affenpinscher»:[],»african»:[],»airedale»:[],»akita»:[],»appenzeller»:[],»basenji»:[],»beagle»:[],»bluetick»:[],»borzoi»:[]…..} а после африканский аффенпинчер …..
4.
$contents
это обычный PHP-массив. Вы можете написать$content = $content['message'];
и$content
должны содержать только массив сообщений («affenpinscher» и так далее). Убедитесь, что вы вызываетеjson_decode
заранее.5. Я снова взглянул на структуру содержимого API и заметил, что «сообщения» — это объект, а не массив. Поэтому вам нужно написать
$content = $content_arr->message;
, что вы можете проверить это, позвонивprint_r($content_arr);
, и PHP выведет что-то вроде «Объект стандартного класса».