예제 #1
0
/**
 * Get post meta
 *
 * @param string   $key     Meta key. Required.
 * @param int|null $post_id Post ID. null for current post. Optional
 * @param array    $args    Array of arguments. Optional.
 *
 * @return mixed
 */
function rwmb_meta($key, $args = array(), $post_id = null)
{
    $post_id = empty($post_id) ? get_the_ID() : $post_id;
    $args = wp_parse_args($args, array('type' => 'text'));
    // Set 'multiple' for fields based on 'type'
    $args['multiple'] = in_array($args['type'], array('checkbox_list', 'file', 'image', 'plupload_image', 'thickbox_image'));
    $meta = get_post_meta($post_id, $key, !$args['multiple']);
    // Get uploaded files info
    if ('file' == $args['type']) {
        if (is_array($meta) && !empty($meta)) {
            $files = array();
            foreach ($meta as $id) {
                $files[$id] = rwmb_file_info($id);
            }
            $meta = $files;
        }
    } elseif (in_array($args['type'], array('image', 'plupload_image', 'thickbox_image'))) {
        if (is_array($meta) && !empty($meta)) {
            global $wpdb;
            $meta = implode(',', $meta);
            // Re-arrange images with 'menu_order'
            $meta = $wpdb->get_col("\n\t\t\t\tSELECT ID FROM {$wpdb->posts}\n\t\t\t\tWHERE post_type = 'attachment'\n\t\t\t\tAND ID in ({$meta})\n\t\t\t\tORDER BY menu_order ASC\n\t\t\t");
            $images = array();
            foreach ($meta as $id) {
                $images[$id] = rwmb_image_info($id, $args);
            }
            $meta = $images;
        }
    } elseif ('taxonomy' == $args['type']) {
        $meta = emtpy($args['taxonomy']) ? array() : wp_get_post_terms($post_id, $args['taxonomy']);
    }
    return $meta;
}
예제 #2
0
/**
 * Get post meta
 *
 * @param string   $key     Meta key. Required.
 * @param int|null $post_id Post ID. null for current post. Optional
 * @param array    $args    Array of arguments. Optional.
 *
 * @return mixed
 */
function rwmb_meta($key, $args = array(), $post_id = null)
{
    $post_id = empty($post_id) ? get_the_ID() : $post_id;
    $args = wp_parse_args($args, array('type' => 'text'));
    // Set 'multiple' for fields based on 'type'
    $args['multiple'] = in_array($args['type'], array('checkbox_list', 'file', 'file_advanced', 'image', 'image_advanced', 'plupload_image', 'thickbox_image'));
    $meta = get_post_meta($post_id, $key, !$args['multiple']);
    // Get uploaded files info
    if (in_array($args['type'], array('file', 'file_advanced'))) {
        if (is_array($meta) && !empty($meta)) {
            $files = array();
            foreach ($meta as $id) {
                $files[$id] = rwmb_file_info($id);
            }
            $meta = $files;
        }
    } elseif (in_array($args['type'], array('image', 'plupload_image', 'thickbox_image', 'image_advanced'))) {
        if (is_array($meta) && !empty($meta)) {
            $images = array();
            foreach ($meta as $id) {
                $images[$id] = rwmb_image_info($id, $args);
            }
            $meta = $images;
        }
    } elseif ('taxonomy_advanced' == $args['type']) {
        if (!empty($args['taxonomy'])) {
            $term_ids = array_map('intval', array_filter(explode(',', $meta . ',')));
            $meta = array();
            foreach ($term_ids as $term_id) {
                $meta[] = get_term($term_id, $args['taxonomy']);
            }
        } else {
            $meta = array();
        }
    } elseif ('taxonomy' == $args['type']) {
        $meta = empty($args['taxonomy']) ? array() : wp_get_post_terms($post_id, $args['taxonomy']);
    } elseif ('map' == $args['type']) {
        $meta = rwmb_meta_map($key, $args, $post_id);
    }
    return apply_filters(__FUNCTION__, $meta, $key, $args, $post_id);
}
예제 #3
0
 function wpsight_get_image_info($id, $args = array())
 {
     if (empty($id)) {
         $id = get_the_ID();
     }
     $info = rwmb_image_info($id, $args);
     return apply_filters('wpsight_get_image_info', $info, $id, $args);
 }