为了账号安全,请及时绑定邮箱和手机立即绑定

类中的 PHP 函数返回空值

类中的 PHP 函数返回空值

守着一只汪 2022-09-29 17:39:42
我正在使用WordPress插件,该插件将帖子显示为谷歌地图上的标记。网站的前端使用定义的纬度和经度正确显示标记,但WP管理面板中的各个帖子部分中缺少这些值。该插件像这样输出纬度和经度,并在编辑器窗格中呈现地图的JavaScript文件中输出。如前所述,这些不返回谷歌地图的值。<?php echo esc_js($this->latitude()) ?><?php echo esc_js($this->longitude()) ?>在同一部分中,但使用不同的代码,纬度和经度值使用 和 返回。我附上了一张显示其显示方式的屏幕截图。默认情况下,地图使用全球纬度和经度将标记居中。<?php esc_attr_e( $marker->latitude() )?><?php esc_attr_e( $marker->longitude() )?>当 I 变量 ,其中包含位置的值时,将返回纬度和经度值。var_dump$marker_listarray(1) {    [21]=>object(Marker)#11821(12) {        ["id":"Marker":private]=>int(21)        ["post_id":"Marker":private]=>int(406)        ["is_main":"Marker":private]=>bool(!0)        ["title":"Marker":private]=>string(16)"Vancouver Island"        ["categories":"Marker":private]=>string(23)"a:1:{i:3;s:6:"canada";}"        ["tags":"Marker":private]=>string(6)"a:0:{}"        ["latitude":"Marker":private]=>float(49.4178)        ["longitude":"Marker":private]=>float(-125.197)        ["marker_logo_id":"Marker":private]=>int(10)        ["infobox_descritpion":"Marker":private]=>string(367)"Text"        ["infobox_image":"Marker":private]=>string(1)"0"        ["infobox_style":"Marker":private]=>string(30)"novo-map_infobox_style_default"    }}我该如何调试PHP以找出为什么没有返回值?
查看完整描述

3 回答

?
胡子哥哥

TA贡献1825条经验 获得超6个赞

我认为接受字符串值。 并且数据类型为 。您应该将它们转换为esc_js$this->latitude()$this->longitude()floatstring

试试这个。它可能会帮助你

<?php echo esc_js($this->latitude().'') ?>
<?php echo esc_js($this->longitude().'') ?>


查看完整回答
反对 回复 2022-09-29
?
交互式爱情

TA贡献1712条经验 获得超3个赞

您发送一个“浮点数”,但需要一个“字符串”。在这种情况下,我建议不要使用该函数。所以:esc_jsesc_js

如果您100%确定您的类型始终是“浮点数”。您可以直接显示您的价值:

<?php echo $this->longitude() ?>

但!如果你不是100%确定,为了防止XSS漏洞,你可以强制浮动类型如下(看看也浮点):

<?php echo (float) $this->longitude() ?>

如果你想尊重原始演员,另一种可能的方法就是使用json_encode,就像这样:

<?php echo json_encode($this->longitude()) ?>

第二种方法,可能是你想做的。


查看完整回答
反对 回复 2022-09-29
?
慕桂英546537

TA贡献1848条经验 获得超10个赞

esc_js函数仅接受字符串,如此处所述


您需要将浮点值转换为字符串,如下所示。


<?php

echo esc_js((string)$this->latitude());

echo esc_js((string)$this->longitude());


查看完整回答
反对 回复 2022-09-29
  • 3 回答
  • 0 关注
  • 116 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信