Ändern Sie den Namen der WP-Anlage beim Hochladen nur für den Post-Typ in “postid”

Ich weiß, dass es viele Lösungen gibt, wie man Anhänge umbenennt, während man Dateien auf PostID hochlädt. Ich habe richtige Lösungen, die wirklich gut funktioniert ist: https://wordpress.stackexchange.com/a/30767/86517 (Ich bin neu und ich kann keine Kommentare dort. Also stelle ich diese Frage.)

Der Code ist:

add_action('add_attachment', 'rename_attacment'); function rename_attacment($post_ID){ $post = get_post($post_ID); $file = get_attached_file($post_ID); $path = pathinfo($file); //dirname = File Path //basename = Filename.Extension //extension = Extension //filename = Filename $newfilename = "NEW FILE NAME HERE"; $newfile = $path['dirname']."/".$newfilename.".".$path['extension']; rename($file, $newfile); update_attached_file( $post_ID, $newfile ); } 

Aber Problem ist, ich möchte das nur für 3 benutzerdefinierte Post-Typen ändert. Derzeit haben meine Website 6 benutzerdefinierte Post-Typ. Also nur 3 benutzerdefinierte Beitragstyp brauchen dies. Gibt es eine Möglichkeit, diese function nur für diesen benutzerdefinierten Beitragstyp ausführen zu lassen?

Vielen Dank

Solutions Collecting From Web of "Ändern Sie den Namen der WP-Anlage beim Hochladen nur für den Post-Typ in “postid”"

Es tut mir wirklich leid. Ich habe mein Problem nach ein paar Minuten behoben. Also habe ich meinen Arbeitscode hier für zukünftige Hilfe hinzugefügt, falls jemand dies benötigt.

 add_action('add_attachment', 'rename_attacment'); function rename_attacment($post_ID){ if ( get_post_type( $_REQUEST['post_id'] ) === 'post_type_1' OR get_post_type( $_REQUEST['post_id'] ) === 'post_type_2' OR get_post_type( $_REQUEST['post_id'] ) === 'post_type_3' ){ $post = get_post($post_ID); $file = get_attached_file($post_ID); $path = pathinfo($file); //dirname = File Path //basename = Filename.Extension //extension = Extension //filename = Filename $newfilename = "NEW FILE NAME HERE"; $newfile = $path['dirname']."/".$newfilename.".".$path['extension']; rename($file, $newfile); update_attached_file( $post_ID, $newfile ); } } 

Danke an alle.

Einfacherer und entwicklerfreundlicherer Code

 add_action('add_attachment', 'rename_attacment'); function rename_attacment($post_ID){ //get post type $post_type = get_post_type($post_ID); //if not in allowed post types then return $allowed_post_types = array('post_1','post_2','post_3'); if(!in_array($post_type,$allowed_post_types)){ return; } $post = get_post($post_ID); $file = get_attached_file($post_ID); $path = pathinfo($file); //dirname = File Path //basename = Filename.Extension //extension = Extension //filename = Filename $newfilename = "NEW FILE NAME HERE"; $newfile = $path['dirname']."/".$newfilename.".".$path['extension']; rename($file, $newfile); update_attached_file( $post_ID, $newfile ); }