رفتن به مطلب

تغییر نام عکس های طبق یک الگوی خاص


Alireza28

پست های پیشنهاد شده

سلام خسته نباشید

من میخوام بدونم امکان داره مثلا یک مطلب که از یه سایت دیگه میگیریم به طور خودکار نام عکس هاش عوض بشه و یک الگوی خاص داشته باشه

مثلا عکسی که میذاریم این شکلی باشه

site.com/wp-content/uploads/2014/4/pic1.jpg

برای ما وقتی آپلود شد اینجوری بشه

mysite.com/wp-content/uploads/2014/4/1231234-mysite_com.jpg

یعنی اول اعداد باشه بعد اسم سایتم بیاد

بخوام مثال بزنم مثل این سایت که عکس های همه به همین شکل ذخیره میشن

http://www.takmehr.ir/91838-interesting-picture-of-an-expensive-car-karroubi.html

اینم آدرس عکس های مطلبش

http://www.takmehr.ir/wp-content/uploads/2014/04/2/699910361-takmehr_ir.jpg

http://www.takmehr.ir/wp-content/uploads/2014/04/2/8972577-takmehr_ir.jpg

لینک به ارسال

درود.

به فایل function اضافه کنید :


function make_filename_hash($filename) {
$info = pathinfo($filename);
$ext = empty($info['extension']) ? '' : '.' . $info['extension'];
$name = basename($filename, $ext);
return md5($name) . $ext;
}
add_filter('sanitize_file_name', 'make_filename_hash', 10);

این کد میاد و نام عکس را کامل تغییر میده و یک کد تصادفی میزاره باید تغییر بدید کد را به دلخواه خودتان.

این افزونه ها هم تست کنید :


http://wordpress.org/plugins/file-renaming-on-upload/


http://wordpress.org/plugins/media-rename/screenshots/

لینک به ارسال

درود.

به فایل function اضافه کنید :


function make_filename_hash($filename) {
$info = pathinfo($filename);
$ext = empty($info['extension']) ? '' : '.' . $info['extension'];
$name = basename($filename, $ext);
return md5($name) . $ext;
}
add_filter('sanitize_file_name', 'make_filename_hash', 10);

این کد میاد و نام عکس را کامل تغییر میده و یک کد تصادفی میزاره باید تغییر بدید کد را به دلخواه خودتان.

این افزونه ها هم تست کنید :


http://wordpress.org/plugins/file-renaming-on-upload/


http://wordpress.org/plugins/media-rename/screenshots/

با تشکر از شما ولی من بلد نیستم این کد رو تو فانکشن قرار بدم

اگه بذارم اینجا شما قرار میدید؟ :(

لینک به ارسال

درود.

برای اضافه کردن به فایل function کد را به آخر فایل قبل از <? قرار بدید یا ضمیمه کنید در پست براتون انجام داده شود.

در مورد الگو تغییر هم باید کد را تغییر دهید.

لینک به ارسال

این فایل فانکشن هست

اگه طبق الگویی که گفتم تعیین کنید خیلی ممنون میشم :):wub:

<?php
function check_cat($id,$class) {
$cat_ids = get_query_var('cat');
if(cat_is_ancestor_of($id,$cat_ids) || $cat_ids == $id) { echo $class; }
}
if(function_exists('register_sidebar')) :
register_sidebar(array(
'name' => 'تبلیغات هدر',
'id' => 'ads-header',
'description' => 'تبلیغات 468 در 60. نمایش در تمامی صفحات',
'before_widget' => '<div id="ads-header">',
'after_widget' => '</div>',
'before_title' => '',
'after_title' => '',
));
endif;
if(function_exists('register_sidebar')) :
register_sidebar(array(
'name' => 'تبلیغات 120',
'id' => 'ads120',
'description' => 'تبلیغات 120 در 240. نمایش در تمامی صفحات',
'before_widget' => '<aside class="block center">',
'after_widget' => '</aside>',
'before_title' => '',
'after_title' => '',
));
endif;
if(function_exists('register_sidebar')) :
register_sidebar(array(
'name' => 'تبلیغات 300',
'id' => 'ads300',
'description' => 'تبلیغات 300 در 100. نمایش در تمامی صفحات',
'before_widget' => '<aside class="block center">',
'after_widget' => '</aside>',
'before_title' => '',
'after_title' => '',
));
endif;
if(function_exists('register_sidebar')) :
register_sidebar(array(
'name' => 'سایدبار راست',
'id' => 'right-sidebar',
'description' => 'این ابزارک برای کنترل بلاک های موجود در سایدبار راست در صفحات داخلی می باشد.',
'before_widget' => '<aside class="block">',
'after_widget' => '</div></aside>',
'before_title' => '<h6><div class="circle"></div> ',
'after_title' => '</h6><div class="content">',
));
endif;
if(function_exists('register_sidebar')) :
register_sidebar(array(
'name' => 'سایدبار چپ',
'id' => 'left-sidebar',
'description' => 'این ابزارک برای کنترل بلاک های موجود در سایدبار چپ در صفحات داخلی می باشد.',
'before_widget' => '<aside class="block">',
'after_widget' => '</div></aside>',
'before_title' => '<h6><div class="circle"></div> ',
'after_title' => '</h6><div class="content">',
));
endif;
# Thumbnail
if(function_exists('add_theme_support')) { add_theme_support('post-thumbnails'); set_post_thumbnail_size(150,100); }
if (function_exists('add_image_size')) { add_image_size('iranbayan-b',150,100,true); add_image_size('iranbayan-s',65,35,true); }
add_filter( 'post_thumbnail_html', 'my_post_image_html', 10, 3 );
function my_post_image_html( $html, $post_id, $post_image_id ) {
$html = '<a href="'.get_permalink($post_id).'" title="' . esc_attr( get_post_field( 'post_title', $post_id ) ) . '">'.$html.'</a>';
$post_title = esc_attr( get_post_field( 'post_title', $post_id ) );
$html = preg_replace( '/(<img[^>]*title\s*=\s*)"[^"]*"|\'[^\']*\'/', '$1"'.$post_title.'"', $html, 1 );
$html = preg_replace( '/(<img[^>]*alt\s*=\s*)"[^"]*"|\'[^\']*\'/', '$1"'.$post_title.'"', $html, 1 );
return $html; }
# Custom Length
function custom_excerpt_length($length) { return 50; }
add_filter( 'excerpt_length', 'custom_excerpt_length', 999 );
# Delete [...]
function new_excerpt_more( $more ) { return '…'; }
add_filter('excerpt_more', 'new_excerpt_more');
# Comments
function windesign_comment($comment,$args,$depth) {
$GLOBALS['comment'] = $comment;
extract($args, EXTR_SKIP);
?>
<div <?php comment_class(); ?> id="comment-<?php comment_ID(); ?>">
<div class="content">
<b><?php printf(__('%s'), get_comment_author()) ?></b> در تاریخ <small class="info"><?php echo get_comment_date(); ?></small> گفته است:


<?php if ($comment->comment_approved == '0') : ?><span class="shop"> در انتظار تأييد مديريت</span><?php endif; ?>
<a href="<?php the_permalink(); ?>?replytocom=<?php comment_ID(); ?>#respond" class="shop">پاسخ دادن</a>
<?php comment_text(); ?>


</div>
<?php } ?>

لینک به ارسال

جایگزین کنید :


<?php
function make_filename_hash($filename) {
$info = pathinfo($filename);
$ext = empty($info['extension']) ? '' : '.' . $info['extension'];
$name = basename($filename, $ext);
$rand=rand(100,99999);
$site="yoursite.com";
return $rand. $site;;
}
add_filter('sanitize_file_name', 'make_filename_hash', 10);
function check_cat($id,$class) {
$cat_ids = get_query_var('cat');
if(cat_is_ancestor_of($id,$cat_ids) || $cat_ids == $id) { echo $class; }
}
if(function_exists('register_sidebar')) :
register_sidebar(array(
'name' => 'تبلیغات هدر',
'id' => 'ads-header',
'description' => 'تبلیغات 468 در 60. نمایش در تمامی صفحات',
'before_widget' => '<div id="ads-header">',
'after_widget' => '</div>',
'before_title' => '',
'after_title' => '',
));
endif;
if(function_exists('register_sidebar')) :
register_sidebar(array(
'name' => 'تبلیغات 120',
'id' => 'ads120',
'description' => 'تبلیغات 120 در 240. نمایش در تمامی صفحات',
'before_widget' => '<aside class="block center">',
'after_widget' => '</aside>',
'before_title' => '',
'after_title' => '',
));
endif;
if(function_exists('register_sidebar')) :
register_sidebar(array(
'name' => 'تبلیغات 300',
'id' => 'ads300',
'description' => 'تبلیغات 300 در 100. نمایش در تمامی صفحات',
'before_widget' => '<aside class="block center">',
'after_widget' => '</aside>',
'before_title' => '',
'after_title' => '',
));
endif;
if(function_exists('register_sidebar')) :
register_sidebar(array(
'name' => 'سایدبار راست',
'id' => 'right-sidebar',
'description' => 'این ابزارک برای کنترل بلاک های موجود در سایدبار راست در صفحات داخلی می باشد.',
'before_widget' => '<aside class="block">',
'after_widget' => '</div></aside>',
'before_title' => '<h6><div class="circle"></div> ',
'after_title' => '</h6><div class="content">',
));
endif;
if(function_exists('register_sidebar')) :
register_sidebar(array(
'name' => 'سایدبار چپ',
'id' => 'left-sidebar',
'description' => 'این ابزارک برای کنترل بلاک های موجود در سایدبار چپ در صفحات داخلی می باشد.',
'before_widget' => '<aside class="block">',
'after_widget' => '</div></aside>',
'before_title' => '<h6><div class="circle"></div> ',
'after_title' => '</h6><div class="content">',
));
endif;
# Thumbnail
if(function_exists('add_theme_support')) { add_theme_support('post-thumbnails'); set_post_thumbnail_size(150,100); }
if (function_exists('add_image_size')) { add_image_size('iranbayan-b',150,100,true); add_image_size('iranbayan-s',65,35,true); }
add_filter( 'post_thumbnail_html', 'my_post_image_html', 10, 3 );
function my_post_image_html( $html, $post_id, $post_image_id ) {
$html = '<a href="'.get_permalink($post_id).'" title="' . esc_attr( get_post_field( 'post_title', $post_id ) ) . '">'.$html.'</a>';
$post_title = esc_attr( get_post_field( 'post_title', $post_id ) );
$html = preg_replace( '/(<img[^>]*title\s*=\s*)"[^"]*"|\'[^\']*\'/', '$1"'.$post_title.'"', $html, 1 );
$html = preg_replace( '/(<img[^>]*alt\s*=\s*)"[^"]*"|\'[^\']*\'/', '$1"'.$post_title.'"', $html, 1 );
return $html; }
# Custom Length
function custom_excerpt_length($length) { return 50; }
add_filter( 'excerpt_length', 'custom_excerpt_length', 999 );
# Delete [...]
function new_excerpt_more( $more ) { return '…'; }
add_filter('excerpt_more', 'new_excerpt_more');
# Comments
function windesign_comment($comment,$args,$depth) {
$GLOBALS['comment'] = $comment;
extract($args, EXTR_SKIP);
?>
<div <?php comment_class(); ?> id="comment-<?php comment_ID(); ?>">
<div class="content">
<b><?php printf(__('%s'), get_comment_author()) ?></b> در تاریخ <small class="info"><?php echo get_comment_date(); ?></small> گفته است:

<?php if ($comment->comment_approved == '0') : ?><span class="shop"> در انتظار تأييد مديريت</span><?php endif; ?>
<a href="<?php the_permalink(); ?>?replytocom=<?php comment_ID(); ?>#respond" class="shop">پاسخ دادن</a>
<?php comment_text(); ?>

</div>
<?php } ?>

در خط های اولیه فایل بالا به جای yoursite نام وب سایت یا متن دلخواه خود را قرار دهید.

لینک به ارسال

متوجه نشدم .

کد تست شد مشکلی نداشت

هنگامی که در حال ارسال مطلب هستید روی افزودن چند رسانه ای کلیک می کنید و عکس مورد نظر را آپلود می کنید از سیستم خود سپس در نوشته قرار می دید انتشار می دید نوشته را بعد که نمایش نوشته را بزنید و روی عکس کلیک کنید نام تغییر کرده.

لینک به ارسال

متوجه نشدم .

کد تست شد مشکلی نداشت

هنگامی که در حال ارسال مطلب هستید روی افزودن چند رسانه ای کلیک می کنید و عکس مورد نظر را آپلود می کنید از سیستم خود سپس در نوشته قرار می دید انتشار می دید نوشته را بعد که نمایش نوشته را بزنید و روی عکس کلیک کنید نام تغییر کرده.

درسته داداش من حواسم نبود افزونه آپلود خودکار رو غیر فعال کردم

این کد درست کار میکنه ولی مشکل اینجاست که وقتی عکس هارو باز می کنید یک سره میره رو سیو تصاویر . یعنی عکس پسوند jpg رو از دست میده

من کد این تاپیک رو

کلیک

در فانکشن قرار دادم درست کار میکنه فقط مشکل اینجاست که یک عکس رو 4 بار ذخیره میکنه دلیلش چیه؟

لینک به ارسال

جایگزین کنید مجددا:


<?php
function make_filename_hash($filename) {
$info = pathinfo($filename);
$ext = empty($info['extension']) ? '' : '.' . $info['extension'];
$name = basename($filename, $ext);
$rand=rand(100,99999);
$site="yoursite.com";
return $rand . $site . $ext;;
}
add_filter('sanitize_file_name', 'make_filename_hash', 10);
function check_cat($id,$class) {
$cat_ids = get_query_var('cat');
if(cat_is_ancestor_of($id,$cat_ids) || $cat_ids == $id) { echo $class; }
}
if(function_exists('register_sidebar')) :
register_sidebar(array(
'name' => 'تبلیغات هدر',
'id' => 'ads-header',
'description' => 'تبلیغات 468 در 60. نمایش در تمامی صفحات',
'before_widget' => '<div id="ads-header">',
'after_widget' => '</div>',
'before_title' => '',
'after_title' => '',
));
endif;
if(function_exists('register_sidebar')) :
register_sidebar(array(
'name' => 'تبلیغات 120',
'id' => 'ads120',
'description' => 'تبلیغات 120 در 240. نمایش در تمامی صفحات',
'before_widget' => '<aside class="block center">',
'after_widget' => '</aside>',
'before_title' => '',
'after_title' => '',
));
endif;
if(function_exists('register_sidebar')) :
register_sidebar(array(
'name' => 'تبلیغات 300',
'id' => 'ads300',
'description' => 'تبلیغات 300 در 100. نمایش در تمامی صفحات',
'before_widget' => '<aside class="block center">',
'after_widget' => '</aside>',
'before_title' => '',
'after_title' => '',
));
endif;
if(function_exists('register_sidebar')) :
register_sidebar(array(
'name' => 'سایدبار راست',
'id' => 'right-sidebar',
'description' => 'این ابزارک برای کنترل بلاک های موجود در سایدبار راست در صفحات داخلی می باشد.',
'before_widget' => '<aside class="block">',
'after_widget' => '</div></aside>',
'before_title' => '<h6><div class="circle"></div> ',
'after_title' => '</h6><div class="content">',
));
endif;
if(function_exists('register_sidebar')) :
register_sidebar(array(
'name' => 'سایدبار چپ',
'id' => 'left-sidebar',
'description' => 'این ابزارک برای کنترل بلاک های موجود در سایدبار چپ در صفحات داخلی می باشد.',
'before_widget' => '<aside class="block">',
'after_widget' => '</div></aside>',
'before_title' => '<h6><div class="circle"></div> ',
'after_title' => '</h6><div class="content">',
));
endif;
# Thumbnail
if(function_exists('add_theme_support')) { add_theme_support('post-thumbnails'); set_post_thumbnail_size(150,100); }
if (function_exists('add_image_size')) { add_image_size('iranbayan-b',150,100,true); add_image_size('iranbayan-s',65,35,true); }
add_filter( 'post_thumbnail_html', 'my_post_image_html', 10, 3 );
function my_post_image_html( $html, $post_id, $post_image_id ) {
$html = '<a href="'.get_permalink($post_id).'" title="' . esc_attr( get_post_field( 'post_title', $post_id ) ) . '">'.$html.'</a>';
$post_title = esc_attr( get_post_field( 'post_title', $post_id ) );
$html = preg_replace( '/(<img[^>]*title\s*=\s*)"[^"]*"|\'[^\']*\'/', '$1"'.$post_title.'"', $html, 1 );
$html = preg_replace( '/(<img[^>]*alt\s*=\s*)"[^"]*"|\'[^\']*\'/', '$1"'.$post_title.'"', $html, 1 );
return $html; }
# Custom Length
function custom_excerpt_length($length) { return 50; }
add_filter( 'excerpt_length', 'custom_excerpt_length', 999 );
# Delete [...]
function new_excerpt_more( $more ) { return '…'; }
add_filter('excerpt_more', 'new_excerpt_more');
# Comments
function windesign_comment($comment,$args,$depth) {
$GLOBALS['comment'] = $comment;
extract($args, EXTR_SKIP);
?>
<div <?php comment_class(); ?> id="comment-<?php comment_ID(); ?>">
<div class="content">
<b><?php printf(__('%s'), get_comment_author()) ?></b> در تاریخ <small class="info"><?php echo get_comment_date(); ?></small> گفته است:
<?php if ($comment->comment_approved == '0') : ?><span class="shop"> در انتظار تأييد مديريت</span><?php endif; ?>
<a href="<?php the_permalink(); ?>?replytocom=<?php comment_ID(); ?>#respond" class="shop">پاسخ دادن</a>
<?php comment_text(); ?>
</div>
<?php } ?>

مشکل ذخیره خودکار حل شد.

در مورد تایپیکی که گذاشتید اگر درست وارد کرده باشید مورد ندارد.

لینک به ارسال

داداش دستت درد نکنه خیلی خوبه فقط یه زحمت دیگه

میتونی یه کاری کنی بین اعداد و اسم سایت یه خط فاصله باشه

عکس های الان اینجوری ذخیره میشن

213123yoursite.com.jpg

میخوام اینجوری ذخیره بشن

d213123-yoursite.com.jpg

لینک به ارسال

جایگزین کنید:


<?php
function make_filename_hash($filename) {
$info = pathinfo($filename);
$ext = empty($info['extension']) ? '' : '.' . $info['extension'];
$name = basename($filename, $ext);
$rand=rand(100,99999);
$site="-yoursite.com";
return $rand . $site . $ext;;
}
add_filter('sanitize_file_name', 'make_filename_hash', 10);
function check_cat($id,$class) {
$cat_ids = get_query_var('cat');
if(cat_is_ancestor_of($id,$cat_ids) || $cat_ids == $id) { echo $class; }
}
if(function_exists('register_sidebar')) :
register_sidebar(array(
'name' => 'تبلیغات هدر',
'id' => 'ads-header',
'description' => 'تبلیغات 468 در 60. نمایش در تمامی صفحات',
'before_widget' => '<div id="ads-header">',
'after_widget' => '</div>',
'before_title' => '',
'after_title' => '',
));
endif;
if(function_exists('register_sidebar')) :
register_sidebar(array(
'name' => 'تبلیغات 120',
'id' => 'ads120',
'description' => 'تبلیغات 120 در 240. نمایش در تمامی صفحات',
'before_widget' => '<aside class="block center">',
'after_widget' => '</aside>',
'before_title' => '',
'after_title' => '',
));
endif;
if(function_exists('register_sidebar')) :
register_sidebar(array(
'name' => 'تبلیغات 300',
'id' => 'ads300',
'description' => 'تبلیغات 300 در 100. نمایش در تمامی صفحات',
'before_widget' => '<aside class="block center">',
'after_widget' => '</aside>',
'before_title' => '',
'after_title' => '',
));
endif;
if(function_exists('register_sidebar')) :
register_sidebar(array(
'name' => 'سایدبار راست',
'id' => 'right-sidebar',
'description' => 'این ابزارک برای کنترل بلاک های موجود در سایدبار راست در صفحات داخلی می باشد.',
'before_widget' => '<aside class="block">',
'after_widget' => '</div></aside>',
'before_title' => '<h6><div class="circle"></div> ',
'after_title' => '</h6><div class="content">',
));
endif;
if(function_exists('register_sidebar')) :
register_sidebar(array(
'name' => 'سایدبار چپ',
'id' => 'left-sidebar',
'description' => 'این ابزارک برای کنترل بلاک های موجود در سایدبار چپ در صفحات داخلی می باشد.',
'before_widget' => '<aside class="block">',
'after_widget' => '</div></aside>',
'before_title' => '<h6><div class="circle"></div> ',
'after_title' => '</h6><div class="content">',
));
endif;
# Thumbnail
if(function_exists('add_theme_support')) { add_theme_support('post-thumbnails'); set_post_thumbnail_size(150,100); }
if (function_exists('add_image_size')) { add_image_size('iranbayan-b',150,100,true); add_image_size('iranbayan-s',65,35,true); }
add_filter( 'post_thumbnail_html', 'my_post_image_html', 10, 3 );
function my_post_image_html( $html, $post_id, $post_image_id ) {
$html = '<a href="'.get_permalink($post_id).'" title="' . esc_attr( get_post_field( 'post_title', $post_id ) ) . '">'.$html.'</a>';
$post_title = esc_attr( get_post_field( 'post_title', $post_id ) );
$html = preg_replace( '/(<img[^>]*title\s*=\s*)"[^"]*"|\'[^\']*\'/', '$1"'.$post_title.'"', $html, 1 );
$html = preg_replace( '/(<img[^>]*alt\s*=\s*)"[^"]*"|\'[^\']*\'/', '$1"'.$post_title.'"', $html, 1 );
return $html; }
# Custom Length
function custom_excerpt_length($length) { return 50; }
add_filter( 'excerpt_length', 'custom_excerpt_length', 999 );
# Delete [...]
function new_excerpt_more( $more ) { return '…'; }
add_filter('excerpt_more', 'new_excerpt_more');
# Comments
function windesign_comment($comment,$args,$depth) {
$GLOBALS['comment'] = $comment;
extract($args, EXTR_SKIP);
?>
<div <?php comment_class(); ?> id="comment-<?php comment_ID(); ?>">
<div class="content">
<b><?php printf(__('%s'), get_comment_author()) ?></b> در تاریخ <small class="info"><?php echo get_comment_date(); ?></small> گفته است:
<?php if ($comment->comment_approved == '0') : ?><span class="shop"> در انتظار تأييد مديريت</span><?php endif; ?>
<a href="<?php the_permalink(); ?>?replytocom=<?php comment_ID(); ?>#respond" class="shop">پاسخ دادن</a>
<?php comment_text(); ?>
</div>
<?php } ?>

لینک به ارسال

به طور تصادفی عدد ها در بازه 100 تا 9999 ایجاد میشن :)

بله در صورت نیاز به تغییر بازه می توانید افزایش یا کاهش دهید.

لینک به ارسال

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...