neosavedme
New member
- Sep 19, 2019
- 20
- 7
- 3
hello, is there any hope that someday someone will offer this
I really need to rename my images by post title on upload and automatically Autofill ALT tag. I've been looking for a while without giving up.
I even ended up trying to devlop my own snippet code by copying some codes I found on the web. it works well
but a few lines are missing to make it customizable
like specify in which post type, in my case i'ts (property)
in the two cases I will end up succeeding .. one day? ...
in the meantime I put all my work here
as you can see in the picture it works but it is not complete
I tried to specify that I want it to run in post type == property
without success
if someone knows php, or knows someone, or has an idea or even does not know anything about php, suggest anything, who can advance or create the same thing
or describe your experience with this problem, something that really works and tested by you.
the idea is to secure and personalize the code
ps: I even went to dig into the plugins files to try to understand some php functions without success..
thank you for your understanding and your time
- Title for your request: "File Renaming on Upload"
- Version: 1.1.9
- Link: "https://wpfactory.com/item/file-renaming-on-upload-wordpress-plugin/"
I really need to rename my images by post title on upload and automatically Autofill ALT tag. I've been looking for a while without giving up.
I even ended up trying to devlop my own snippet code by copying some codes I found on the web. it works well
but a few lines are missing to make it customizable
like specify in which post type, in my case i'ts (property)
in the two cases I will end up succeeding .. one day? ...
in the meantime I put all my work here
Code:
/*Renaming attachment files to the post title*/
function file_renamer( $filename ) {
$info = pathinfo( $filename );
$ext = empty( $info['extension'] ) ? '' : '.' . $info['extension'];
$name = basename( $filename, $ext );
if( $post_id = array_key_exists("post_id", $_POST) ? $_POST["post_id"] : null) {
if($post = get_post($post_id)) {
return $post->post_title . $ext;
}
}
$my_image_title = $post;
$file['name'] = $my_image_title . - uniqid() . $ext; // uniqid method
// $file['name'] = md5($name) . $ext; // md5 method
// $file['name'] = base64_encode($name) . $ext; // base64 method
return $filename;
}
add_filter( 'sanitize_file_name', 'file_renamer', 10, 1 );
/* Automatically set the image Title, Alt-Text, Caption & Description upon upload*/
add_action( 'add_attachment', 'my_set_image_meta_upon_image_upload' );
function my_set_image_meta_upon_image_upload( $post_ID ) {
// Check if uploaded file is an image, else do nothing
if ( wp_attachment_is_image( $post_ID ) ) {
// Get the parent post ID, if there is one
if( isset($_REQUEST['post_id']) ) {
$post_id = $_REQUEST['post_id'];
} else {
$post_id = false;
}
if ($post_id != false) {
$my_image_title = get_the_title($post_id);
} else {
$my_image_title = get_post( $post_ID )->post_title;
}
// Sanitize the title: remove hyphens, underscores & extra spaces:
$my_image_title = preg_replace( '%\s*[-_\s]+\s*%', ' ', $my_image_title );
// Sanitize the title: capitalize first letter of every word (other letters lower case):
$my_image_title = ucwords( strtolower( $my_image_title ) );
// Create an array with the image meta (Title, Caption, Description) to be updated
// Note: comment out the Excerpt/Caption or Content/Description lines if not needed
$my_image_meta = array(
'ID' => $post_ID, // Specify the image (ID) to be updated
'post_title' => $my_image_title, // Set image Title to sanitized title
'post_excerpt' => $my_image_title, // Set image Caption (Excerpt) to sanitized title
'post_content' => $my_image_title, // Set image Description (Content) to sanitized title
);
// Set the image Alt-Text
update_post_meta( $post_ID, '_wp_attachment_image_alt', $my_image_title );
// Set the image meta (e.g. Title, Excerpt, Content)
wp_update_post( $my_image_meta );
}
}
as you can see in the picture it works but it is not complete

I tried to specify that I want it to run in post type == property
without success
Code:
/*Renaming attachment files to the post title*/
function rename_attacment($post_ID){
if ( get_post_type( $_REQUEST['post_id'] ) === 'property') {
$info = pathinfo( $filename );
$ext = empty( $info['extension'] ) ? '' : '.' . $info['extension'];
$name = basename( $filename, $ext );
$my_image_title = $post;
$file['name'] = $my_image_title . - uniqid() . $ext; // uniqid method
// $file['name'] = md5($name) . $ext; // md5 method
// $file['name'] = base64_encode($name) . $ext; // base64 method
return $filename;
}
}
add_filter( 'sanitize_file_name', 'file_renamer', 10, 1 );
if someone knows php, or knows someone, or has an idea or even does not know anything about php, suggest anything, who can advance or create the same thing
or describe your experience with this problem, something that really works and tested by you.
the idea is to secure and personalize the code
ps: I even went to dig into the plugins files to try to understand some php functions without success..
thank you for your understanding and your time
Last edited: