Benutzerdefinierte Feld- und Gravitationsformulare

Ich habe den folgenden benutzerdefinierten functionscode, mit dem ich benutzerdefinierte Felder für einen Post-Typ erstellen kann.

Das Problem ist, dass die benutzerdefinierten Felder einzeln angezeigt werden müssen und im Moment erscheinen sie nur als “Schlüssel”, was bedeutet, dass ich nur verlinken kann, wenn ich versuche, ein Formularfeld (Gravity Forms) mit einem benutzerdefinierten Feld zu verknüpfen das Schlüsselfeld

Wie kann dies geändert werden, um jedes benutzerdefinierte Feld einzeln anzuzeigen?

/* Custom Fields */ $key = "key"; $meta_boxes = array( "cf_link" => array( "name" => "cf_link", "title" => "URL/Link", "description" => "Enter the URL/Link here."), "cf_image" => array( "name" => "cf_image", "title" => "Image", "description" => "Enter the image URL here."), "cf_instructions" => array( "name" => "cf_instructions", "title" => "Instructions", "type" => "textarea", "description" => "Enter any specific instructions here.") ); function create_meta_box() { global $key; if( function_exists( 'add_meta_box' ) ) { add_meta_box( 'new-meta-boxes', ucfirst( $key ) . 'Product Details', 'display_meta_box', 'products', 'normal', 'high' ); } } function display_meta_box() { global $post, $meta_boxes, $key; ?> 
ID, $key, true); ?>
<label for=""> <textarea name="" rows="4"> <input type="text" name="" value="" />

<?php } function save_meta_box( $post_id ) { global $post, $meta_boxes, $key; foreach( $meta_boxes as $meta_box ) { $data[ $meta_box[ 'name' ] ] = $_POST[ $meta_box[ 'name' ] ]; } if ( !wp_verify_nonce( $_POST[ $key . '_wpnonce' ], plugin_basename(__FILE__) ) ) return $post_id; if ( !current_user_can( 'edit_post', $post_id )) return $post_id; update_post_meta( $post_id, $key, $data ); } add_action( 'admin_menu', 'create_meta_box' ); add_action( 'save_post', 'save_meta_box' );

Solutions Collecting From Web of "Benutzerdefinierte Feld- und Gravitationsformulare"

Mit etwas Hilfe habe ich es geschafft, den Code so zu ändern, dass Gravity Forms jetzt die benutzerdefinierten Felder aufruft.

Da der ursprüngliche Code für ein serialisiertes Array von Feldinformationen verwendet wird, kann Gravity Forms diesen ursprünglichen Code nicht verwenden, daher ist hier der neue Code für die individuelle Erstellung von Zeilen für jedes benutzerdefinierte Feld (welches GF verwenden kann):

 /* Custom Fields */ $key = "key"; $meta_boxes = array( "cf_link" => array( "name" => "cf_link", "title" => "URL/Link", "description" => "Enter the URL/Link here."), "cf_image" => array( "name" => "cf_image", "title" => "Image", "description" => "Enter the image URL here."), "cf_instructions" => array( "name" => "cf_instructions", "title" => "Instructions", "type" => "textarea", "description" => "Enter any specific instructions here.") ); function create_meta_box() { global $key; if( function_exists( 'add_meta_box' ) ) { add_meta_box( 'new-meta-boxes', ucfirst( $key ) . 'Product Details', 'display_meta_box', 'products', 'normal', 'high' ); } } function display_meta_box() { global $post, $meta_boxes, $key; ?> 
< ?php wp_nonce_field( plugin_basename( __FILE__ ), $key . '_wpnonce', false, true ); foreach($meta_boxes as $meta_box) { $data = get_post_meta($post->ID, $meta_box['name'], true); ?>
< ?php if( $meta_box['type'] === 'textarea' ) { ?> < ?php } else { ?> < ?php }?>

< ?php echo $meta_box[ 'description' ]; ?>

< ?php } ?>
< ?php } function save_meta_box( $post_id ) { global $post, $meta_boxes, $key; foreach( $meta_boxes as $meta_box ) { $data[ $meta_box[ 'name' ] ] = $_POST[ $meta_box[ 'name' ] ]; } if ( !wp_verify_nonce( $_POST[ $key . '_wpnonce' ], plugin_basename(__FILE__) ) ) return $post_id; if ( !current_user_can( 'edit_post', $post_id )) return $post_id; foreach ($data as $d => $v) { update_post_meta( $post_id, $d, $v ); } } add_action( 'admin_menu', 'create_meta_box' ); add_action( 'save_post', 'save_meta_box' );