ACF:动态填充数字字段基于值的选择字段

时间:2019-07-30 10:56:19

标签: php wordpress advanced-custom-fields

我正在使用ACF load_field挂钩动态填充选择字段(map_marker)的选择。它从由地图插件创建的数据库表中选择,并给我列ID和标记名。工作正常。

填充选择字段的代码:

<?php 

add_filter('acf/load_field/name=map_marker', 'acf_mapsmarker_choices');

function acf_mapsmarker_choices($field){

  $field['choices'] = array();

  global $wpdb;

  $results = $wpdb->get_results('SELECT * FROM ' . $wpdb->prefix . 'leafletmapsmarker_markers ORDER BY ID ASC');  

  if(!empty($results)) :

  foreach($results as $result) :

    $value = $result->id;
    $label = $result->markername;

    $field['choices'][ $value ] = $label;

  endforeach;
  endif;
  return $field;
}

?>

现在,我想使用选定的值来填充两个单独的数字字段(“ marker_lat”和“ marker_lon”)。

这些字段值存储在同一数据库表的“ lon”和“ lat”列下,因此本质上我需要使用另外两个load_field函数根据选择字段值填充这些字段值:

   <?php 
    add_filter('acf/load_field/name=marker_lat', 'rar_acf_mapsmarker_latitude');
    function rar_acf_mapsmarker_latitude($field){

     $field['value'] = '';

      global $wpdb;
      $results = $wpdb->get_results('SELECT * FROM ' . $wpdb->prefix . 'leafletmapsmarker_markers ORDER BY ID ASC');  
      if(!empty($results)) :

      //get the first value on the array
      $value = $results[0]->lat;

      //update the field value
      $field['value'] = $value;
      endif;
      return $field;

    }
    ?>

这将加载第一个表条目,但我正在努力找出如何使用原始数组中的选定值来填充这些数字字段。

有人有做这种事情的经验吗?

任何帮助都会很棒!

0 个答案:

没有答案