本文整理汇总了PHP中acf_parse_types函数的典型用法代码示例。如果您正苦于以下问题:PHP acf_parse_types函数的具体用法?PHP acf_parse_types怎么用?PHP acf_parse_types使用的例子?那么, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了acf_parse_types函数的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: acf_update_field
function acf_update_field($field = false, $specific = false)
{
// $field must be an array
if (!is_array($field)) {
return false;
}
// validate
$field = acf_get_valid_field($field);
// may have been posted. Remove slashes
$field = wp_unslash($field);
// parse types (converts string '0' to int 0)
$field = acf_parse_types($field);
// clean up conditional logic keys
if (!empty($field['conditional_logic'])) {
// extract groups
$groups = acf_extract_var($field, 'conditional_logic');
// clean array
$groups = array_filter($groups);
$groups = array_values($groups);
// clean rules
foreach (array_keys($groups) as $i) {
$groups[$i] = array_filter($groups[$i]);
$groups[$i] = array_values($groups[$i]);
}
// reset conditional logic
$field['conditional_logic'] = $groups;
}
// parent may be a field key
// - lookup parent ID
if (acf_is_field_key($field['parent'])) {
$field['parent'] = acf_get_field_id($field['parent']);
}
// filter for 3rd party customization
$field = apply_filters("acf/update_field", $field);
$field = apply_filters("acf/update_field/type={$field['type']}", $field);
$field = apply_filters("acf/update_field/name={$field['name']}", $field);
$field = apply_filters("acf/update_field/key={$field['key']}", $field);
// store origional field for return
$data = $field;
// extract some args
$extract = acf_extract_vars($data, array('ID', 'key', 'label', 'name', 'prefix', 'value', 'menu_order', 'id', 'class', 'parent', '_name', '_input', '_valid'));
// serialize for DB
$data = maybe_serialize($data);
// save
$save = array('ID' => $extract['ID'], 'post_status' => 'publish', 'post_type' => 'acf-field', 'post_title' => $extract['label'], 'post_name' => $extract['key'], 'post_excerpt' => $extract['name'], 'post_content' => $data, 'post_parent' => $extract['parent'], 'menu_order' => $extract['menu_order']);
// $specific
if (!empty($specific)) {
// prepend ID
array_unshift($specific, 'ID');
// vars
$_save = $save;
// reset
$save = array();
// appen data
foreach ($specific as $key) {
$save[$key] = $_save[$key];
}
}
// allow fields to contain the same name
add_filter('wp_unique_post_slug', 'acf_update_field_wp_unique_post_slug', 100, 6);
// update the field and update the ID
if ($field['ID']) {
wp_update_post($save);
} else {
$field['ID'] = wp_insert_post($save);
}
// clear cache
acf_delete_cache("get_field/key={$field['key']}");
// return
return $field;
}
示例2: acf_parse_type
function acf_parse_type($v)
{
// test for array
if (is_array($v)) {
return acf_parse_types($v);
}
// bail early if not string
if (!is_string($v)) {
return $v;
}
// trim
$v = trim($v);
// numbers
if (is_numeric($v) && strval((int) $v) === $v) {
$v = intval($v);
}
// return
return $v;
}
示例3: acf_update_field_group
function acf_update_field_group($field_group = array())
{
// validate
$field_group = acf_get_valid_field_group($field_group);
// may have been posted. Remove slashes
$field_group = wp_unslash($field_group);
// parse types (converts string '0' to int 0)
$field_group = acf_parse_types($field_group);
// locations may contain 'uniquid' array keys
$field_group['location'] = array_values($field_group['location']);
foreach ($field_group['location'] as $k => $v) {
$field_group['location'][$k] = array_values($v);
}
// store origional field group for return
$data = $field_group;
// extract some args
$extract = acf_extract_vars($data, array('ID', 'key', 'title', 'menu_order', 'fields', 'active'));
// vars
$data = maybe_serialize($data);
$post_status = $extract['active'] ? 'publish' : 'acf-disabled';
// save
$save = array('ID' => $extract['ID'], 'post_status' => $post_status, 'post_type' => 'acf-field-group', 'post_title' => $extract['title'], 'post_name' => $extract['key'], 'post_excerpt' => sanitize_title($extract['title']), 'post_content' => $data, 'menu_order' => $extract['menu_order']);
// allow field groups to contain the same name
add_filter('wp_unique_post_slug', 'acf_update_field_group_wp_unique_post_slug', 100, 6);
// update the field group and update the ID
if ($field_group['ID']) {
wp_update_post($save);
} else {
$field_group['ID'] = wp_insert_post($save);
}
// action for 3rd party customization
do_action('acf/update_field_group', $field_group);
// clear cache
acf_delete_cache("get_field_group/key={$field_group['key']}");
// return
return $field_group;
}
示例4: acf_parse_args
function acf_parse_args($args, $defaults = array())
{
// parse args
$args = wp_parse_args($args, $defaults);
// parse types
$args = acf_parse_types($args);
// return
return $args;
}
示例5: acf_parse_types
function acf_parse_types($var)
{
// is value another array?
if (is_array($var)) {
// some keys are restricted
$restricted = array('label', 'name', 'value', 'instructions', 'nonce');
// loop through $var carful not to parse any restricted keys
foreach (array_keys($var) as $k) {
// bail early for restricted pieces
if (in_array($k, $restricted, true)) {
continue;
}
$var[$k] = acf_parse_types($var[$k]);
}
} else {
// string
if (is_string($var)) {
$var = trim($var);
}
// numbers
if (is_numeric($var)) {
// check for non numeric characters
if (preg_match('/[^0-9]/', $var)) {
// leave value if it contains such characters: . + - e
//$value = floatval( $value );
} else {
$var = intval($var);
}
}
}
// return
return $var;
}