douqian1975 2019-01-03 00:11
浏览 20

有没有办法在帖子类型中获取所有已注册的元字段?

I'm creating a dynamic form that user can select a post type and show all meta fields registered on that selected post type, is there a way to get all meta fields in a post types?

  • 写回答

1条回答 默认 最新

  • dpjo15650 2019-01-03 06:43
    关注

    You'll use custom sql query to get these meta keys/fields.

    With this function you'll be able to exclude/include the empty meta_keys and the hidden ones.

    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;
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥15 自适应 AR 模型 参数估计Matlab程序
  • ¥100 角动量包络面如何用MATLAB绘制
  • ¥15 merge函数占用内存过大
  • ¥15 Revit2020下载问题
  • ¥15 使用EMD去噪处理RML2016数据集时候的原理
  • ¥15 神经网络预测均方误差很小 但是图像上看着差别太大
  • ¥15 单片机无法进入HAL_TIM_PWM_PulseFinishedCallback回调函数
  • ¥15 Oracle中如何从clob类型截取特定字符串后面的字符
  • ¥15 想通过pywinauto自动电机应用程序按钮,但是找不到应用程序按钮信息
  • ¥15 如何在炒股软件中,爬到我想看的日k线