我正在创建一个动态表单,用户可以选择一个帖子类型并显示在该所选帖子类型上注册的所有元字段,有没有办法获取帖子类型中的所有元字段?
答案 0 :(得分:0)
您将使用自定义sql查询来获取这些元键/字段。
使用此功能,您将可以排除/包括空的meta_keys和隐藏的meta_keys。
function get_all_meta_keys($post_type = 'post', $exclude_empty = false,
$exclude_hidden = false){
global $wpdb;
$query = "
SELECT DISTINCT($wpdb->postmeta.meta_key)
FROM $wpdb->posts
LEFT JOIN $wpdb->postmeta
ON $wpdb->posts.ID = $wpdb->postmeta.post_id
WHERE $wpdb->posts.post_type = '%s'
";
if($exclude_empty)
$query .= " AND $wpdb->postmeta.meta_key != ''";
if($exclude_hidden)
$query .= " AND $wpdb->postmeta.meta_key NOT RegExp '(^[_0-9].+$)' ";
$meta_keys = $wpdb->get_col($wpdb->prepare($query, $post_type));
return $meta_keys;
}