Php WordPress将自定义字段保存到数据库

Php WordPress将自定义字段保存到数据库,php,wordpress,Php,Wordpress,我编写了一个非常简单的插件,将自定义字段添加到媒体库中,但在数据库wp_posteta表中显示,我的pdf没有元数据。我应该在meta_值列中获取序列化元数据。下面我的插件不正确吗? 该插件实现了添加自定义字段,但不保存到数据库中 meta_id post_id meta_value 552 356 a:0:{} 551 356 插件代码 我缺少添加过滤器('attachment\u fields\u to\u save','SaveCustomFo

我编写了一个非常简单的插件,将自定义字段添加到媒体库中,但在数据库wp_posteta表中显示,我的pdf没有元数据。我应该在meta_值列中获取序列化元数据。下面我的插件不正确吗? 该插件实现了添加自定义字段,但不保存到数据库中

meta_id post_id     meta_value
552   356          a:0:{}
551   356   

插件代码

我缺少添加过滤器('attachment\u fields\u to\u save','SaveCustomFormFields',null,2)


  <?php
    /*
    Plugin Name: Media Library Fields
    Plugin URI: http://mhmintranet
    Description: The plugin adds additional fields to the media library
    Version: 1.0
    Author: me
    Author URI: Metropolitan State Hospital http://mhmintranet
    License: GPL2
    */
    function GetCustomFormFields($form_fields, $post)
    {
        $form_fields['RevisionDate'] = array(
                
                'label' => 'Revision Date',
                'input' => 'text',
                'value' => get_post_meta($posdt->ID, '_RevisionDate',true),
                'helps' => 'This is the date the document was revised last'
                );
                
        $form_fields['ADTitle'] = array(
                
                'label' => 'AD Title',
                'input' => 'text',
                'value' => get_post_meta($posdt->ID, '_ADTitle',true),
                'helps' => 'Administrative Directive Title'
                );
        $form_fields['AdNumber'] = array(
                
                'label' => 'AD Number',
                'input' => 'text',
                'value' => get_post_meta($posdt->ID, '_AdNumber',true),
                'helps' => 'Administrative Directive Title'
                );
        
        return $form_fields;
    }
    add_filter("attachment_fields_to_edit", "GetCustomFormFields", null, 2);  
    
    function SaveCustomFormFields($post,$attachment)
    {
        if(isset($attachment['RevisionDate']))
        {
            update_post_meta($post['ID'], '_RevisionDate', $attachment['RevisionDate']);  
        }
    if(isset($attachment['ADTitle']))
        {
            update_post_meta($post['ID'], '_ADTitle', $attachment['ADTitle']);  
        }
    if(isset($attachment['AdNumber']))
        {
            update_post_meta($post['ID'], '_AdNumber', $attachment['AdNumber']);  
        }
        return $post;
    }
    add_filter('attachment_fields_to_save','SaveCustomFormFields');
    
    ?>
 <?php
    /*
    Plugin Name: Media Library Fields
    Plugin URI: http://mhmintranet
    Description: The plugin adds additional fields to the media library
    Version: 1.0
    Author: Jose Velez
    Author URI: Metropolitan State Hospital http://mhmintranet
    License: GPL2
    */

    //Function used 
    /*get_post_meta :http://codex.wordpress.org/Function_Reference/get_post_meta

    attachment_fields_to_edit  and attachment_fields_to_save is a hook located wp-admin/includes/media.php
    To learn more: 
    http://net.tutsplus.com/tutorials/wordpress/creating-custom-fields-for-attachments-in-wordpress/
    http://codex.wordpress.org/Plugin_API/Filter_Reference/attachment_fields_to_save

    Weird Wordpress convention : Fields prefixed with an underscore 
    (_RevisionDate) will not be listed in the drop down of available custom fields on the post/page screen; 
    I only need the custom fields in the media library page
    */
    function GetCustomFormFields($form_fields, $post)
    {
        $form_fields['RevisionDate'] = array(

                'label' => 'Revision Date',
                'input' => 'text',
                'value' => get_post_meta($posdt->ID, '_RevisionDate',true),
                'helps' => 'This is the date the document was revised last'
                );

        $form_fields['ADTitle'] = array(

                'label' => 'AD Title',
                'input' => 'text',
                'value' => get_post_meta($posdt->ID, '_ADTitle',true),
                'helps' => 'Administrative Directive Title'
                );
        $form_fields['AdNumber'] = array(

                'label' => 'AD Number',
                'input' => 'text',
                'value' => get_post_meta($posdt->ID, '_AdNumber',true),
                'helps' => 'Administrative Directive Title'
                );

        return $form_fields;
    }
    add_filter("attachment_fields_to_edit", "GetCustomFormFields", null, 2);  

    function SaveCustomFormFields($post,$attachment)
    {
        if(isset($attachment['RevisionDate']))
        {
            update_post_meta($post['ID'], '_RevisionDate', $attachment['RevisionDate']);  
        }
    if(isset($attachment['ADTitle']))
        {
            update_post_meta($post['ID'], '_ADTitle', $attachment['ADTitle']);  
        }
    if(isset($attachment['AdNumber']))
        {
            update_post_meta($post['ID'], '_AdNumber', $attachment['AdNumber']);  
        }
        return $post;
    }
    add_filter('attachment_fields_to_save','SaveCustomFormFields',null,2);

    ?>