Fügen Sie dem benutzerdefinierten post_type ein zusätzliches Feld hinzu

Ich versuche ein anderes Feld (Untertitel) zu meinem bereits erstellten und bestehenden benutzerdefinierten post_type: team hinzuzufügen (Code aus functions.php in meinem * child * Theme)

 array( 'title', 'editor', 'page-attributes', 'thumbnail', 'excerpt' ), 'hierarchical' => true, ); $team = new post_type('team','team', false, $args ); } /** * Initialize the metabox class */ add_action( 'init', 'be_initialize_team_meta_boxes', 9999 ); function be_initialize_team_meta_boxes() { if ( !class_exists( 'team_Meta_Box' ) ) { require_once( get_stylesheet_directory(). '/inc/metaboxes/fisio-metaboxes.php' ); require_once( get_stylesheet_directory(). '/inc/metaboxes/init.php' ); } } ?> 

Und das ist der Code in fisio-metaboxes.php

   'team_details', 'title' => 'Team details', 'post_type' => 'team', // Post type 'context' => 'side', 'priority' => 'high', 'show_names' => true, // Show field names on the left 'fields' => array( array( 'name' => 'Subtitle', //'desc' => '', 'id' => $prefix . 'subtitle', 'type' => 'text' ), ), ); return $meta_boxes; } add_action( 'init', 'team_initialize_team_meta_boxes', 9999 ); /** * Initialize the metabox class. */ function team_initialize_team_meta_boxes() { if ( ! class_exists( 'team_Meta_Box' ) ) require_once get_stylesheet_directory(). '/inc/metaboxes/init.php'; } 

Das Problem ist, dass, wenn ich in der wp-admin ich einen post_type Post des neuen Teams hinzufügen möchte, der post_type nicht das Untertitelfeld hat

Was vermisse ich?

Edit: Falls du es nicht bemerkt hast, habe ich das noch nie gemacht. Ich folge diesen Schritten ohne Erfolg.

-BEARBEITEN-

Ich versuche es auch so:

 $meta_boxes[] = array( 'id' => 'team_details', 'title' => 'Team details', 'pages' => 'team', // Post type 'context' => 'normal', 'priority' => 'high', 'show_names' => true, // Show field names on the left 'fields' => array( array( 'name' => 'Subtitle', 'desc' => 'This is the subtitle', 'id' => $prefix . 'subtitle', 'type' => 'text' ), ), ); 

-BEARBEITEN-

Es wurde auch versucht, post_type als Array zu übergeben

 'pages' => array('team'), // Post type 

Solutions Collecting From Web of "Fügen Sie dem benutzerdefinierten post_type ein zusätzliches Feld hinzu"

In Ihrem Code verwenden Sie:

 add_filter( 'team_Meta_Box', 'team_sample_metaboxes' ); 

Auf der Website, mit der Sie verlinkt haben, verwenden sie:

 add_filter( 'cmb_meta_boxes', 'wpb_sample_metaboxes' ); 

Meine Frage ist also: hast du alle Instanzen von “cmb” in “team” in der Datei init.php geändert?

Wenn Sie das tun, sollte der richtige Filter sein:

 add_filter( 'team_meta_boxes', 'team_sample_metaboxes' ); 

Edit: Wenn Sie die init.php-Datei überhaupt nicht geändert haben (und ich sehe nicht wirklich, warum Sie sie ändern würden), dann sollten Sie “cmb” in den folgenden Fällen nicht in “team” in Ihrem Code ändern:

1)

 add_filter( 'cmb_meta_boxes', 'team_sample_metaboxes' ); 

2)

 if ( ! class_exists( 'cmb_Meta_Box' ) ) 

Ich habe kürzlich ein Plugin namens SuperCPT veröffentlicht , das diesen process für einen Entwickler sehr einfach macht. Das klingt, als ob Sie nicht wirklich ein Entwickler sind, und Sie könnten von einer Benutzeroberfläche profitieren. In diesem Fall können Sie das Plugin Weitere Felder ausprobieren , mit dem Sie Metaboxen und Felder erstellen können, ohne Code zu schreiben.

Wenn Sie SuperCPT verwenden, können Sie den gesamten Code (benutzerdefinierte Post-Typ-Deklaration und Meta-Box-Code) durch ersetzen:

 function wpse_88959_add_meta_boxes() { if ( ! class_exists( 'Super_Custom_Post_Type' ) ) return; $teams = new Super_Custom_Post_Type( 'team', 'Team', 'Teams', array( 'hierarchical' => true ) ); $teams->add_meta_box( array( 'id' => 'team_details', 'context' => 'normal', 'priority' => 'high', 'fields' => array( 'subtitle' => array() ) ) ); } add_action( 'after_setup_theme', 'wpse_88959_add_meta_boxes' ); 

Versuchen Sie, die Seiten in ein Array wie folgt zu ändern:

 'pages' => array('page'), // post type 

Ich würde empfehlen, dieses großartige Tool zum Hinzufügen von Meta-Feldern zu verwenden. Es hat viele functionen und wurde von respektablen WP-Codern gebaut. Alles funktioniert direkt aus der Box.

Lesen Sie einfach die statementen und kopieren Sie die Beispielfunktionen in Ihre functionsdatei.