Пример #1
0
/**
 * Returns the post meta or empty string if not available
 * Since 2.3 the function no longer has its own caching.
 *
 * @param $post_id
 * @param $meta_key
 * @param $is_single
 *
 * @return mixed
 * @deprecated This is no longer needed. For accessing custom fields, use the Toolset_Field* API. For accessing
 * other postmeta, use get_post_meta() directly.
 */
function wpcf_get_post_meta($post_id, $meta_key, $is_single)
{
    $post_meta = get_post_meta($post_id, $meta_key, $is_single);
    if (Toolset_Utils::is_field_value_truly_empty($post_meta)) {
        // no meta data
        return '';
    }
    return maybe_unserialize($post_meta);
}
Пример #2
0
/**
 * Calls view function for specific field type by single field.
 *
 * @param array $field
 * @param array $params
 * @param mixed $content
 * @param string $code
 * @param null|int $meta_id
 *
 * @return string
 */
function types_render_field_single($field, $params, $content = null, $code = '', $meta_id = null)
{
    global $post;
    if (empty($post)) {
        $post = (object) array('ID' => '');
    }
    // Apply filters to field value
    if (is_string($params['field_value'])) {
        $params['field_value'] = trim($params['field_value']);
    }
    $params = apply_filters('types_field_shortcode_parameters', $params, $field, $post, $meta_id);
    $params['field_value'] = apply_filters('wpcf_fields_value_display', $params['field_value'], $params, $post->ID, $field['id'], $meta_id);
    $params['field_value'] = apply_filters('wpcf_fields_slug_' . $field['slug'] . '_value_display', $params['field_value'], $params, $post->ID, $field['id'], $meta_id);
    $params['field_value'] = apply_filters('wpcf_fields_type_' . $field['type'] . '_value_display', $params['field_value'], $params, $post->ID, $field['id'], $meta_id);
    // To make sure
    if (is_string($params['field_value'])) {
        $params['field_value'] = addslashes(stripslashes(strval($params['field_value'])));
    }
    // Note that $params['field_value'] does NOT need translating
    // When a variable string or label output needs translating we do it on 'wpcf_fields_type_' . $field['type'] . '_value_display' on a field type basis
    $field['name'] = wpcf_translate('field ' . $field['id'] . ' name', $field['name']);
    $params['field'] = $field;
    $params['#content'] = htmlspecialchars($content);
    $params['#code'] = $code;
    // Set additional data
    $params['__meta_id'] = $meta_id;
    $params['field']['__meta_id'] = $meta_id;
    if (isset($params['raw']) && $params['raw'] == 'true' || isset($params['output']) && $params['output'] == 'raw') {
        // Skype is array
        if ($field['type'] == 'skype' && isset($params['field_value']['skypename'])) {
            $output = $params['field_value']['skypename'];
        } else {
            if ($field['type'] == 'checkboxes' && is_array($params['field_value'])) {
                $output = '';
                foreach ($params['field_value'] as $value) {
                    if ($output != '') {
                        $output .= ', ';
                    }
                    $output .= $value[0];
                }
            } else {
                $output = $params['field_value'];
            }
        }
    } else {
        /*
         * This is place where view function is called.
         * Returned data should be string.
         */
        $output = '';
        $_view_func = 'wpcf_fields_' . strtolower($field['type']) . '_view';
        if (is_callable($_view_func)) {
            $output = strval(call_user_func($_view_func, $params));
        }
        if (Toolset_Utils::is_field_value_truly_empty($output) && isset($params['field_value']) && $params['field_value'] !== "") {
            $output = $params['field_value'];
        } else {
            if ($output == '__wpcf_skip_empty') {
                $output = '';
            }
        }
        if (isset($params['output']) && $params['output'] == 'html') {
            $output = wpcf_frontend_compat_html_output($output, $field, $content, $params);
        } else {
            // Prepend name if needed
            if (!Toolset_Utils::is_field_value_truly_empty($output) && isset($params['show_name']) && $params['show_name'] == 'true') {
                $output = $params['field']['name'] . ': ' . $output;
            }
        }
    }
    // Apply filters
    $output = strval(apply_filters('types_view', $output, $params['field_value'], $field['type'], $field['slug'], $field['name'], $params));
    return stripslashes(strval($output));
}