Zeige Box nur auf Post bearbeiten

Ich habe einen benutzerdefinierten Video-Post-Typ erstellt und auf der Bearbeitungsseite ein Meta-Feld platziert, in dem ich einen mit dem Post verknüpften Shortcode anzeigen kann, um es für den Benutzer einfacher zu machen.

Ich wünsche mir jedoch, dass der Shortcode und / oder die Box nur auf der Post-Seite und nicht auf der neuen Post-Seite sichtbar ist, wo sie noch nicht relevant ist – was suche ich hier? Ich habe dieses quälende Gefühl, dass ich das schon einmal gemacht habe, aber ich kann mir einfach nicht vorstellen, wonach ich suchen soll.

ETA: Das habe ich mit der Hilfe gemacht, die ich unten bekommen habe, könnte auch für jemand anderen nützlich sein:

add_action( 'add_meta_boxes', 'my_video_add_custom_box' ); function my_video_add_custom_box() { if (get_post_status( $post->ID ) != 'auto-draft') { add_meta_box( 'my_video_shortcode_custom_box', __( 'Shortcode', 'my_video' ), 'my_video_shortcode_custom_box', 'my_video', 'side', 'default' ); } } 

functioniert wie ein Zauber, danke!

Solutions Collecting From Web of "Zeige Box nur auf Post bearbeiten"

Überprüfen Sie den Post-Status mit get_post_status ($ ID) und zeigen Sie den HTML-Code entsprechend dem Status an. (ie) Du könntest einfach verwenden, wenn sonst in deiner php Template Datei andere Inhalte basierend auf dem Poststatus angezeigt werden. Ich denke, neue Beiträge haben den Auto-Draft-Status. get_post_status codex sollte hilfreich sein.

Ihre Lösung, die fälschlicherweise als Bearbeitung der Frage veröffentlicht wurde, gibt mir eine “undefinierte Variable” Notice für $post . Es funktioniert, weil die Kette von functionsaufrufen, die durch get_post_status ausgetriggers wird, letztendlich, wenn alles andere fehlschlägt, die global Variable $post annimmt .

Eine bessere Lösung wäre, die bedingte Registrierung aus der function heraus und in den Callback zu verschieben, dem die Variable $post vom WordPress-core übergeben wird.

 add_action( 'add_meta_boxes', 'my_video_add_custom_box' ); function my_video_add_custom_box() { add_meta_box( 'my_video_shortcode_custom_box', __( 'Shortcode', 'my_video'), 'my_video_shortcode_custom_box', 'my_video', 'side', 'default' ); } function my_video_shortcode_custom_box($post) { if (get_post_status( $post->ID ) != 'auto-draft') { // your box code } }