【发布时间】:2020-09-23 20:48:37
【问题描述】:
我有以下代码。一切正常,回显时 $thumb 输出正确的值(一个 URL),但是当我将它添加到这个数组时 category_image 只是一个空白值。
function th_get_places_data(){
$maps_data = th_get_places();
if(!$maps_data) return;
$places_array = array();
foreach ($maps_data as $key => $id) {
$location = get_field('location', $id);
//print_r($location);
//$term = wp_get_post_terms($id, 'place_category');
$term = get_terms(
'place_category',
array(
'hide_empty' => false
)
);
//print_r($term);
$lat = $lng = '';
if($location !== '' && !empty($term) ){
$lat = $location['lat'];
$lng = $location['lng'];
$category_img_slug = 'place_category_' . $term[0]->term_id;
$thumb = the_field('category_thumbnail', $category_img_slug );
echo $thumb;
//Outputs https://localhost/image.png
$places_array[$key] = array(
'id' => $id,
'title' => get_the_title($id),
'address' => get_field('address', $id),
'phone' => get_field('phone', $id),
'url' => get_field('url', $id),
'lat' => $lat,
'lng' => $lng,
'category' => $term[0]->slug,
//category_image returns blank
'category_image' => $thumb
// Adding URL manually works fine
//'category_image' => 'https://localhost/image.png'
);
}
}
return $places_array;
}
谁能告诉我为什么没有添加这个 URL 字符串?
数组的var_dump:
array(2) { [0]=> array(9) { [“id”]=> int(248) [“title”]=> string(15) “Coastal Cookery” [“address”]=> string(41) “4553 Some Ave, Some City, BC V9A 2N9” [“phone”]=> string(14) “(555 455-5568” [“url”]=> string(0) “” [“lat”]=> float(49.8390779) [“lng”]=> float(-124.5282024) [“category”]=> string(12) “arts-culture” [“category_image”]=> NULL } [1]=> array(9) { [“id”]=> int(237) [“title”]=> string(21) “A restaurant” [“address”]=> string(41) “123 Some St, Some City, BC V2A 3A2” [“phone”]=> string(12) “250-345-6789” [“url”]=> array(3) { [“title”]=> string(7) “Contact” [“url”]=> string(44) “http://localhost/contact” [“target”]=> string(0) “” } [“lat”]=> float(49.8315734) [“lng”]=> float(-124.5197612) [“category”]=> string(12) “arts-culture” [“category_image”]=> NULL } } Array ( [0] => Array ( [id] => 248 [title] => A restaurant [address] => Some Ave, Some City, BC V9A 2N9 [phone] => (555) 455-5568 [url] => [lat] => 49.8390779 [lng] => -124.5282024 [category] => arts-culture [category_image] => ) [1] => Array ( [id] => 237 [title] => Some Restaurant [address] => Some St, Come City, BC V2A 3A2 [phone] => 250-345-6789 [url] => Array ( [title] => Contact [url] => http://localhost/contact/ [target] => ) [lat] => 49.8315734 [lng] => -124.5197612 [category] => arts-culture [category_image] => ) )
【问题讨论】:
-
@Mech 你什么意思?
-
什么也没看到。当你说
$thumb时信任你是一个字符串。返回数组的var_dump是什么样的?该值为空,或者category_image键甚至不存在?您如何确定这一点? -
使用
var_dump。由于我们无法查看所有代码,因此我们知道the_field返回的值是一个对象,当您 echo 时,我们会看到该对象的__toString表示。 -
添加了 var 转储。之后我更改了一些餐厅和地址详细信息,所以如果它们不相同,请不要担心。
-
好的,
NULL不完全是一个空值。也将echo $thumb;更改为var_dump。想将其与我们在您的阵列中看到的进行比较。这里的重点是真正了解调用the_field()返回的内容。