Verfügen Anhänge, die zu benutzerdefinierten Post-Typen hinzugefügt wurden, über ein übergeordnetes Postfach?

Auf Anhangseiten habe ich einen Link zurück zu dem Post / der Seite, wo die Datei hochgeladen wurde. (Dies wird nicht für Dateien angezeigt, die direkt zur Medienbibliothek hinzugefügt wurden und das ist in Ordnung.)

Für Anhänge, die zu Posts und Seiten hinzugefügt wurden, generiert der folgende Code den Link:

$post = get_post( get_the_ID() ); if ( $post->post_parent ) { echo 'post_parent ) . '">' . get_the_title( $post->post_parent ) . ''; } 

Wenn ich versuche, einen Anhang anzuzeigen, der zu einem benutzerdefinierten Post-Typ hochgeladen wurde, funktioniert dies jedoch nicht.

Wenn ich einen var_dump von $ post zeige, bekomme ich Folgendes:

 object(WP_Post)#398 (24) { ["ID"]=> int(789) ["post_author"]=> string(1) "1" ["post_date"]=> string(19) "2015-04-17 13:32:39" ["post_date_gmt"]=> string(19) "2015-04-17 13:32:39" ["post_content"]=> string(0) "" ["post_title"]=> string(5) "image" ["post_excerpt"]=> string(0) "" ["post_status"]=> string(7) "inherit" ["comment_status"]=> string(4) "open" ["ping_status"]=> string(4) "open" ["post_password"]=> string(0) "" ["post_name"]=> string(5) "image" ["to_ping"]=> string(0) "" ["pinged"]=> string(0) "" ["post_modified"]=> string(19) "2015-04-17 13:32:39" ["post_modified_gmt"]=> string(19) "2015-04-17 13:32:39" ["post_content_filtered"]=> string(0) "" ["post_parent"]=> int(0) ["guid"]=> string(63) "wp-content/uploads/2015/04/image.jpg" ["menu_order"]=> int(0) ["post_type"]=> string(10) "attachment" ["post_mime_type"]=> string(10) "image/jpeg" ["comment_count"]=> string(1) "0" ["filter"]=> string(3) "raw" } 

Der betreffende Teil ist ["post_parent"]=> int(0) was bedeutet, dass Dateien, die an benutzerdefinierte Beiträge angehängt sind, kein Elternteil haben.

Kann das jemand bestätigen? Oder könnte dies ein Fehler sein, mit dem ich den benutzerdefinierten Post-Typ eingerichtet habe?

Ich habe versucht sowohl hierarchische als auch nicht-hierarchische Typen und mit und ohne ‘Seitenattribute’ unterstützt.

Vielen Dank im Voraus für die Hilfe,

Adam

Solutions Collecting From Web of "Verfügen Anhänge, die zu benutzerdefinierten Post-Typen hinzugefügt wurden, über ein übergeordnetes Postfach?"

Nach einigen Nachforschungen habe ich festgestellt, dass benutzerdefinierte Post-Typen post_parent nicht für Anhänge speichern oder einige Anpassungen mit register_post_type () erfordern.

Ich habe jedoch festgestellt, dass WordPress beim Hochladen von Anhängen an reguläre Posts eine Post-ID mit AJAX sendet, was bei benutzerdefinierten Post-Typen nicht der Fall ist. Daher müssen wir post_id dem Medien-Uploader für den benutzerdefinierten Post-Typ zuweisen. Hier ist der Ausschnitt.

 add_filter( 'wp_insert_post', 'foo_insert_post'); function foo_insert_post( $post_id, $post, $update ){ //if this is cpt, go on if( 'your_cpt' === $post->post_type ){ //ref: wp-includes\media.php @ ~2648 //ref: https://developer.wordpress.org/reference/hooks/plupload_default_params/ add_filter( 'plupload_default_params', 'foo_plupload_config'); } } function foo_plupload_config($params){ global $post; //assign current post id $params['post_id'] = $post->ID; return $params; } 

Hoffe, es funktioniert.

Ich hatte kürzlich ähnliches Problem und ich fand, dass folgende Option in register_post_type function:

 "hierarchical" => true 

ist die Antwort.