-
Notifications
You must be signed in to change notification settings - Fork 2
/
get_post_meta.php
53 lines (50 loc) · 1.94 KB
/
get_post_meta.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
<?php
// Post meta single output for all fields
function sandbox_get_post_meta($post_id=0){
$numeric_fields = array('_alpha_file_count', '_favorites', '_wpcr_rating', '_thumbnail_id');
$serialized_fields = array('_more-link', '_alpha_file_options', '_section-linked', '_conditions-table', '_links-internal', '_links-external');
$encode_fields = array('_team-phone', '_team-email');
$post_id = absint($post_id);
if ( !$post_id ) {
$post_id = get_the_ID();
}
$post_custom = get_post_custom($post_id);
$post_meta_keys = get_post_custom_keys($post_id);
$post_meta = array();
if ( $post_custom !== false && !empty($post_custom) ) {
foreach ( $post_meta_keys as $post_meta_key ) {
if ( !empty($post_custom[$post_meta_key][0]) ) {
$post_meta[$post_meta_key] = $post_custom[$post_meta_key][0];
// exeptions
// numeric field type
if ( in_array($post_meta_key, $numeric_fields) ) {
$post_meta[$post_meta_key] = intval($post_custom[$post_meta_key][0]);
}
// serialized field type
if ( in_array($post_meta_key, $serialized_fields) ) {
$post_meta[$post_meta_key] = unserialize($post_custom[$post_meta_key][0]);
}
// fields to output encoded
if ( in_array($post_meta_key, $encode_fields) ) {
if (function_exists('eae_encode_str') ) {
$post_meta[$post_meta_key] = eae_encode_str($post_custom[$post_meta_key][0]);
$post_meta[$post_meta_key . '_unencoded'] = $post_custom[$post_meta_key][0];
}
}
} else {
$post_meta[$post_meta_key] = '';
// exeptions
// numeric field type
if ( in_array($post_meta_key, $numeric_fields) ) {
$post_meta[$post_meta_key] = 0;
}
// serialized field type
if ( in_array($post_meta_key, $serialized_fields) ) {
$post_meta[$post_meta_key] = array();
}
}
}
}
return $post_meta;
}
?>