如何在Wordpress自定义字段中存储阵列?

时间:2019-01-04 13:24:54

标签: php arrays wordpress list

我的数组$location为空。但这很奇怪。列表($adresse, $lat, $long创建变量$lat$long。我知道,因为它们是在update_post_meta字段中输入的。但是该数组不起作用。 创建数组时我做错了什么?列表只工作一次吗? 干杯, 丹尼斯

PHP 7.2,Wordpress 5.02,WP User Frontend Pro插件WPUF 3.0.2

我尝试了像$location[...]这样的数组,但这不起作用。 我试图使阵列像

$location = array(      
    'latitude' => 'lat',
    'longitude' => 'long'
);

但这不起作用:-(

这是我的Wordpress功能代码:

function update_GEOmyWP( $post_id ) {

if ( ! $post_id ) {
return;
}

if ( ! function_exists( 'gmw_update_post_location' ) ) {
return;
}

if ( isset( $_POST['aufnahmeort'] ) ) {

list( $adresse, $lat, $long ) = explode( '||', $_POST['aufnahmeort'] );

$location = array(      
    'latitude' => $lat,
    'longitude' => $long
);

if ( $adresse ) {
    update_post_meta( $post_id, 'newADDRESS', $adresse );
}
if ( $lat ) {
    update_post_meta( $post_id, 'newLAT', $lat );
}
if ( $long ) {
    update_post_meta( $post_id, 'newLONG', $long );
}
// I added this line to check if something is written in the meta field, but the field is empty.
if ( $location ) {
    update_post_meta( $post_id, 'newLOCATION', $location );
}

gmw_update_post_location( $post_id, $location );

}
}
add_action( 'wpuf_add_post_after_insert', 'update_GEOmyWP' );
add_action( 'wpuf_edit_post_after_update', 'update_GEOmyWP' );

我想要一个经纬度的数组。

我有一个更新:

我刚刚在postmeta表中进入了wordpress数据库,并且在newLOCATION下有这个数组a:2:{s:8:"latitude";s:12:" 50.7936389 ";s:9:"longitude";s:18:" 6.952259499999968";},但是为什么不在元字段中呢?

1 个答案:

答案 0 :(得分:0)

  

为什么不在元字段中

您是说它没有显示在自定义字段中吗?

您上面的代码仅完成将数组值保存到数据库的工作。并且您已经验证了数据库中的值(以序列化数组的形式),它似乎可以正常工作。

请检查用于显示自定义字段的代码,并查看如何从数据库获取数据并显示在该字段中。在这里,您应该调试。