本文整理汇总了PHP中acf_get_value函数的典型用法代码示例。如果您正苦于以下问题:PHP acf_get_value函数的具体用法?PHP acf_get_value怎么用?PHP acf_get_value使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了acf_get_value函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: acf_views_render_fields
function acf_views_render_fields($post_id = 0, $fields, $el = 'div', $instruction = 'label')
{
// bail early if no fields
if (empty($fields)) {
return false;
}
// remove corrupt fields
$fields = array_filter($fields);
//Load all the values first
foreach ($fields as &$ref_field) {
// load value
if ($ref_field['value'] === null) {
$ref_field['value'] = acf_get_value($post_id, $ref_field);
}
}
$hiding_fields = false;
// loop through fields
foreach ($fields as $field) {
// load value
if ($field['value'] === null) {
$field['value'] = acf_get_value($post_id, $field);
}
// set prefix for correct post name (prefix + key)
$field['prefix'] = 'acf';
// render
$show_field = true;
if (!empty($field['conditional_logic'])) {
$show_field = ACF_Views_Conditional_Logic::show_field($field, $fields);
}
if ($field['type'] == 'tab') {
if (!$show_field) {
$hiding_fields = true;
} else {
$hiding_fields = false;
}
}
if (!$hiding_fields) {
if ($show_field) {
if ($field['type'] == 'repeater') {
$x = 1;
}
acf_views_render_field_wrap($field, $el, $instruction);
}
}
}
}
示例2: acf_render_fields
function acf_render_fields($post_id = 0, $fields, $el = 'div', $instruction = 'label')
{
if (!empty($fields)) {
foreach ($fields as $field) {
// load value
if ($field['value'] === null) {
$field['value'] = acf_get_value($post_id, $field);
}
// set prefix for correct post name (prefix + key)
$field['prefix'] = 'acf';
// render
acf_render_field_wrap($field, $el, $instruction);
}
}
}
示例3: load_value
function load_value($value, $post_id, $field)
{
$fields = array();
foreach ($field['sub_fields'] as $sub_field) {
$sub_field_name = $sub_field['name'];
// update prefix to allow for nested values
$sub_field['prefix'] = $field["name"];
$sub_field['name'] = "{$field['name']}_{$sub_field_name}";
// load value
if ($sub_field['value'] === null) {
$sub_field['value'] = acf_format_value(acf_get_value($post_id, $sub_field), $post_id, $sub_field);
}
$fields[$sub_field_name] = $sub_field['value'];
}
return $fields;
}
示例4: get_field_object
function get_field_object($selector, $post_id = false, $format_value = true, $load_value = true)
{
// complete loading
acf()->complete();
// compatibilty
if (is_array($format_value)) {
$format_value = acf_parse_args($format_value, array('format_value' => true, 'load_value' => true));
extract($format_value);
}
// vars
$override_name = false;
// filter post_id
$post_id = acf_get_valid_post_id($post_id);
// load field reference if not a field_key
if (!acf_is_field_key($selector)) {
$override_name = $selector;
$selector = acf_get_field_reference($selector, $post_id);
}
// get field key
$field = acf_get_field($selector);
// bail early if no field found
if (!$field) {
return false;
}
// override name?
// This allows the $selector to be a sub field (images_0_image)
if ($override_name) {
$field['name'] = $override_name;
}
// load value
if ($load_value) {
$field['value'] = acf_get_value($post_id, $field);
}
// format value
if ($format_value) {
// get value for field
$field['value'] = acf_format_value($field['value'], $post_id, $field);
}
// return
return $field;
}
示例5: delete_value
function delete_value($post_id, $key, $field)
{
// get old value (db only)
$old_total = intval(acf_get_value($post_id, $field, true));
// bail early if no rows or no sub fields
if (!$old_total || !$field['sub_fields']) {
return;
}
for ($i = 0; $i < $old_total; $i++) {
foreach ($field['sub_fields'] as $sub_field) {
// modify name for delete
$sub_field['name'] = "{$key}_{$i}_{$sub_field['name']}";
// delete value
acf_delete_value($post_id, $sub_field);
}
// foreach
}
}
示例6: display_field_column
function display_field_column($column, $post_id)
{
if (isset($this->column_fields[$column])) {
$field = $this->column_fields[$column];
switch ($field['type']) {
case 'file':
$value = acf_get_value($post_id, $field);
if (!is_null($value) && !empty($value)) {
$file = get_post($value);
printf(__('Edit: <a href="%s">%s</a>', 'acf-quick-edit-fields'), get_edit_post_link($value), $file->post_title);
}
break;
case 'image':
$image_id = get_field($field['key']);
if ($image_id) {
if (is_array($image_id)) {
// Image field is an object
echo wp_get_attachment_image($image_id['id'], array(80, 80));
} else {
if (is_numeric($image_id)) {
// Image field is an ID
echo wp_get_attachment_image($image_id, array(80, 80));
} else {
// Image field is a url
echo '<img src="' . $image_id . '" width="80" height="80" />';
}
}
}
break;
case 'select':
case 'radio':
case 'checkbox':
$field_value = get_field($field['key']);
$values = array();
foreach ((array) $field_value as $value) {
$values[] = isset($field['choices'][$value]) ? $field['choices'][$value] : $value;
}
$output = implode(__(', ', 'acf-quick-edit-fields'), $values);
if (empty($output)) {
$output = __('(No value)', 'acf-quick-edit-fields');
}
echo $output;
break;
case 'true_false':
echo get_field($field['key']) ? __('Yes') : __('No');
break;
case 'color_picker':
$value = get_field($field['key']);
if ($value) {
echo '<div class="color-indicator" style="border-radius:2px;border:1px solid #d2d2d2;width:26px;height:20px;background-color:' . $value . '"></div>';
} else {
_e('(No value)', 'acf-quick-edit-fields');
}
break;
case 'number':
$value = get_field($field['key']);
if ($value === "") {
_e('(No value)', 'acf-quick-edit-fields');
} else {
echo number_format_i18n($value, strlen(substr(strrchr($value, "."), 1)));
}
break;
case 'textarea':
?>
<pre><?php
the_field($field['key']);
?>
</pre><?php
break;
default:
the_field($field['key']);
break;
}
}
}
示例7: load_value
function load_value($value, $post_id, $field)
{
// bail early if no value
if (empty($value) || empty($field['layouts'])) {
return $value;
}
// value must be an array
$value = acf_get_array($value);
// vars
$rows = array();
// populate $layouts
$layouts = array();
foreach (array_keys($field['layouts']) as $i) {
// get layout
$layout = $field['layouts'][$i];
// append to $layouts
$layouts[$layout['name']] = $layout['sub_fields'];
}
// loop through rows
foreach ($value as $i => $l) {
// append to $values
$rows[$i] = array();
$rows[$i]['acf_fc_layout'] = $l;
// bail early if layout deosnt contain sub fields
if (empty($layouts[$l])) {
continue;
}
// get layout
$layout = $layouts[$l];
// loop through sub fields
foreach (array_keys($layout) as $j) {
// get sub field
$sub_field = $layout[$j];
// update full name
$sub_field['name'] = "{$field['name']}_{$i}_{$sub_field['name']}";
// get value
$sub_value = acf_get_value($post_id, $sub_field);
// add value
$rows[$i][$sub_field['key']] = $sub_value;
}
// foreach
}
// foreach
// return
return $rows;
}
示例8: load_value
function load_value($value, $post_id, $field)
{
// bail early if no sub fields
if (empty($field['sub_fields'])) {
return $value;
}
// modify
$field = $this->prepare_field_for_save($field);
// load sub fields
$value = array();
// loop
foreach (array_keys($field['sub_fields']) as $i) {
// get sub field
$sub_field = $field['sub_fields'][$i];
// get value
$sub_value = acf_get_value($post_id, $sub_field);
// add value
$value[$sub_field['key']] = $sub_value;
}
// return
return $value;
}
示例9: _extract_strings
/**
* Extract translatable items from the $field_group
*
* Supported Field Types:
* - Basic
* - text
* - textarea
* - number
* - email
* - url
* - password
* - Content
* - wysiwyg
* - oembed
* - image
* - file
* - gallery (pro)
* - Choice
* - select
* - checkbox
* - radio
* - true_false
* - Relational
* - post_object
* - page_link
* - relationship
* - taxonomy
* - user
* - jQuery
* - google_map
* - date_picker
* - color_picker
* - Layout
* - message
* - tab
* - repeater (pro)
* - flexible_content (pro)
*
* Unsupported Field Types:
* - N/A
*
* @todo Register custom locations, fields, and field types.
*
* @param mixed $field_group
* @param array $data
* @param string|bool $sub_fields
* @return array $data
*/
protected function _extract_strings($field_group, &$data = [], $sub_fields = false)
{
$is_options_group = $this->is_options_group($field_group);
if ($sub_fields) {
$fields = isset($field_group['sub_fields']) ? $field_group['sub_fields'] : $field_group;
$_prefix = is_string($sub_fields) ? $sub_fields : '';
} else {
$group_keys = $this->_get_group_keys();
$this->pluck_strings($field_group, $group_keys, $data);
$fields = $field_group['fields'];
$_prefix = '';
}
if (!empty($fields)) {
$field_keys = $this->_get_field_keys();
foreach ($fields as $i => $field) {
$prefix = $_prefix . $field['key'] . '.';
$value_keys = $this->_get_value_keys($field);
$this->pluck_strings($field, $field_keys, $data, $prefix);
if ($is_options_group) {
if ($field['value'] === null) {
$field['value'] = acf_get_value('options', $field);
}
$this->pluck_strings($field, $value_keys, $data, $prefix);
}
$prefix = '';
switch ($field['type']) {
case 'text':
case 'textarea':
case 'number':
case 'email':
case 'url':
case 'password':
case 'select':
if (isset($field['placeholder']) && '' != $field['placeholder']) {
$data[$_prefix . $field['key'] . '.placeholder'] = ['string' => $field['placeholder'], 'multiline' => 'textarea' === $field['type']];
}
case 'text':
case 'textarea':
case 'number':
case 'email':
case 'url':
case 'password':
$affix_keys = $this->_get_affix_keys();
foreach ($affix_keys as $key) {
if (isset($field[$key]) && '' != $field[$key]) {
$data[$_prefix . $field['key'] . '.' . $key] = ['string' => $field[$key], 'multiline' => false];
}
}
break;
case 'true_false':
case 'message':
if (isset($field['message']) && '' != $field['message']) {
//.........这里部分代码省略.........
示例10: delete_sub_row
function delete_sub_row($selector, $i = 1, $post_id = false)
{
// vars
$sub_field = false;
$i--;
// filter post_id
$post_id = acf_get_valid_post_id($post_id);
// get sub field
if (is_array($selector)) {
$sub_field = acf_maybe_get_sub_field($selector, $post_id, false);
} else {
$sub_field = get_row_sub_field($selector);
}
// bail early if no sub field
if (!$sub_field) {
return false;
}
// get raw value
$value = acf_get_value($post_id, $sub_field);
// ensure array
$value = acf_get_array($value);
// append
unset($value[$i]);
// update
return acf_update_value($value, $post_id, $sub_field);
}
示例11: display_field_column
function display_field_column($column, $post_id)
{
if (isset($this->column_fields[$column])) {
$field = $this->column_fields[$column];
switch ($field['type']) {
case 'file':
$value = \acf_get_value($post_id, $field);
if (!is_null($value) && !empty($value)) {
$file = \get_post($value);
printf(__('Edit: %s', 'acf-quick-edit-fields'), sprintf('<a href="%s" title="%s">%s</a>', \esc_url(\get_edit_post_link($value)), \esc_attr($file->post_title), $file->post_title));
}
break;
case 'image':
$image_id = \get_field($field['key']);
if (!$image_id) {
return;
}
if (is_array($image_id)) {
// Image field is an object
echo \wp_get_attachment_image($image_id['id'], array(80, 80));
} else {
if (is_numeric($image_id)) {
// Image field is an ID
echo \wp_get_attachment_image($image_id, array(80, 80));
} else {
// Image field is a url
echo '<img src="' . $image_id . '" width="80" height="80" />';
}
}
break;
case 'select':
$field_value = \get_field($field['key']);
if (is_array($field_value)) {
\_e('(Default value)', 'acf-quick-edit-fields');
} else {
if (isset($field['choices'][$field_value])) {
echo $field['choices'][$field_value];
}
}
case 'radio':
case 'checkbox':
$field_value = \get_field($field['key']);
$values = array();
foreach ((array) $field_value as $value) {
$values[] = isset($field['choices'][$value]) ? $field['choices'][$value] : $value;
}
$output = implode(\__(', ', 'acf-quick-edit-fields'), $values);
if (empty($output)) {
$output = \__('(No value)', 'acf-quick-edit-fields');
}
echo $output;
break;
case 'true_false':
$true_false = \get_field($field['key']);
$formatted = $true_false ? __('Yes', 'acf-quick-edit-fields') : __('No', 'acf-quick-edit-fields');
echo \apply_filters('acf/quick_edit/field_column/true_false', $formatted, $true_false, $post_id);
break;
case 'post_object':
$post_object = \get_field($field['key']);
$post_title = '';
if (is_object($post_object)) {
$post_title = \get_the_title($post_object->ID);
}
echo \apply_filters('acf/quick_edit/field_column/post_object', $post_title, $post_object, $post_id);
break;
case 'date_picker':
$date = \get_field($field['key']);
echo \apply_filters('acf/quick_edit/field_column/date_picker', date_i18n($field['display_format'], strtotime($date)), $date, $post_id);
break;
case 'color_picker':
$value = \get_field($field['key']);
if ($value) {
echo '<div class="color-indicator" style="border-radius:2px;border:1px solid #d2d2d2;width:26px;height:20px;background-color:' . $value . '"></div>';
} else {
\_e('(No value)', 'acf-quick-edit-fields');
}
break;
case 'number':
$value = \get_field($field['key']);
if ($value === '') {
\_e('(No value)', 'acf-quick-edit-fields');
} else {
echo \number_format_i18n($value, strlen(substr(strrchr($value, '.'), 1)));
}
break;
case 'textarea':
printf('<pre>%s</pre>', \get_field($field['key']));
break;
default:
echo \get_field($field['key']);
break;
}
}
}
示例12: load_value
public function load_value($value, $post_id, $field)
{
// bail early if no value
if (empty($value) || !isset($field['sub_fields']) || empty($field['sub_fields'])) {
return $value;
}
// loop through sub fields
foreach (array_keys($field['sub_fields']) as $j) {
// get sub field
$sub_field = $field['sub_fields'][$j];
if (isset($value['widget_id']) && !empty($value['widget_id'])) {
$acf_widget_api_key = 'widget_' . $value['widget_id'];
$sub_value = acf_get_value($acf_widget_api_key, $sub_field);
} else {
$sub_value = null;
}
//Store the value so we don't have to reterive it again in the render function.
$value[$sub_field['key']] = $sub_value;
}
return $value;
}
示例13: delete_row
function delete_row($selector, $row = 1, $post_id = false)
{
// filter post_id
$post_id = acf_get_valid_post_id($post_id);
// get field
$field = acf_maybe_get_field($selector, $post_id);
// bail early if no field
if (!$field) {
return false;
}
// get value
$rows = acf_get_value($post_id, $field);
// bail early if no value
if (empty($rows)) {
return false;
}
// vars
$i = $row - 1;
// bail early if row doesn't exist
if (empty($rows[$i])) {
return false;
}
// unset
unset($rows[$i]);
// reindex
$rows = array_values($rows);
// update
acf_update_value($rows, $post_id, $field);
// return
return true;
}
示例14: display_field_column
function display_field_column($column, $post_id)
{
if (isset($this->column_fields[$column])) {
$field = $this->column_fields[$column];
switch ($field['type']) {
case 'file':
$value = acf_get_value($post_id, $field);
if (!is_null($value) && !empty($value)) {
$file = get_post($value);
printf(__('Edit: <a href="%s">%s</a>', 'acf-quick-edit-fields'), get_edit_post_link($value), $file->post_title);
}
break;
case 'image':
$image_id = get_field($field['key']);
if (is_array($image_id)) {
// Image field is an object
echo wp_get_attachment_image($image_id['id'], array(80, 80));
} else {
if (is_numeric($image_id)) {
// Image field is an ID
echo wp_get_attachment_image($image_id, array(80, 80));
} else {
// Image field is a url
echo '<img src="' . $image_id . '" width="80" height="80" />';
}
}
break;
case 'select':
$field_value = get_field($field['key']);
//
if (is_array($field_value)) {
_e('(Default value)', 'acf-quick-edit-fields');
} else {
if (isset($field['choices'][$field_value])) {
echo $field['choices'][get_field($field['key'])];
}
}
break;
case 'true_false':
echo get_field($field['key']) ? __('Yes') : __('No');
break;
default:
the_field($field['key']);
break;
}
}
}
示例15: update_value
function update_value($value, $post_id, $field)
{
// remove acfcloneindex
if (isset($value['acfcloneindex'])) {
unset($value['acfcloneindex']);
}
// vars
$order = array();
$layouts = array();
// populate $layouts
foreach ($field['layouts'] as $layout) {
$layouts[$layout['name']] = $layout['sub_fields'];
}
// update sub fields
if (!empty($value)) {
// $i
$i = -1;
// loop through rows
foreach ($value as $row) {
// $i
$i++;
// get layout
$l = $row['acf_fc_layout'];
// append to order
$order[] = $l;
// loop through sub fields
if (!empty($layouts[$l])) {
foreach ($layouts[$l] as $sub_field) {
// value
$v = false;
// key (backend)
if (isset($row[$sub_field['key']])) {
$v = $row[$sub_field['key']];
} elseif (isset($row[$sub_field['name']])) {
$v = $row[$sub_field['name']];
} else {
// input is not set (hidden by conditioanl logic)
continue;
}
// modify name for save
$sub_field['name'] = "{$field['name']}_{$i}_{$sub_field['name']}";
// update field
acf_update_value($v, $post_id, $sub_field);
}
// foreach
}
// if
}
// foreach
}
// if
// remove old data
$old_order = acf_get_value($post_id, $field, true);
$old_count = empty($old_order) ? 0 : count($old_order);
$new_count = empty($order) ? 0 : count($order);
if ($old_count > $new_count) {
for ($i = $new_count; $i < $old_count; $i++) {
// get layout
$l = $old_order[$i];
// loop through sub fields
if (!empty($layouts[$l])) {
foreach ($layouts[$l] as $sub_field) {
// modify name for delete
$sub_field['name'] = "{$field['name']}_{$i}_{$sub_field['name']}";
// delete value
acf_delete_value($post_id, $sub_field);
}
}
}
}
// save false for empty value
if (empty($order)) {
$order = false;
}
// return
return $order;
}