/* Clean Image Filenames */
class CleanImageFilenames {
public function __construct() {
add_action( 'wp_handle_upload_prefilter', array( $this, 'upload_filter' ) );
add_action( 'add_attachment', array( $this, 'update_attachment_title' ) );
}
public function upload_filter( $file ) {
$original_filename = pathinfo( $file['name'] );
set_transient( '_clean_image_filenames_original_filename', $original_filename['filename'], 60 );
$file = $this->clean_filename( $file );
return $file;
}
public function clean_filename( $file ) {
$dosyaAdi = explode('.', $file['name']);
$cleaned_filename = $dosyaAdi[0];
$specific_replacements = array(
'Ğ' => 'g',
'ğ' => 'g',
'Ü' => 'u',
'ü' => 'u',
'Ş' => 's',
'ş' => 's',
'İ' => 'i',
'ı' => 'i',
'Ö' => 'o',
'ö' => 'o',
'Ç' => 'c',
'ç' => 'c',
' ' => '-',
'_' => '-',
',' => '-',
'%20' => '-',
);
$cleaned_filename = str_replace( array_keys( $specific_replacements ), array_values( $specific_replacements ), $cleaned_filename );
$cleaned_filename = remove_accents( $cleaned_filename );
$cleaned_filename = strtolower( $cleaned_filename );
$cleaned_filename = preg_replace( '/[^a-z0-9-]/', '', $cleaned_filename );
$cleaned_filename = preg_replace( '/-+/', '-', $cleaned_filename );
$cleaned_filename = trim( $cleaned_filename, '-' );
$file['name'] = $cleaned_filename . '.' . $dosyaAdi[1];
return $file;
}
public function update_attachment_title( $attachment_id ) {
$original_filename = get_transient( '_clean_image_filenames_original_filename' );
if ( $original_filename ) {
wp_update_post(
array(
'ID' => $attachment_id,
'post_title' => $original_filename,
)
);
delete_transient( '_clean_image_filenames_original_filename' );
}
}
}
new CleanImageFilenames(); Şu Koddaki PHP Hatası Nedir? Türkçe Karakteri Siliyor (Görmüyor)
11
●137
- 19-04-2021, 20:14:25Aşağıdaki kod yüklenen ortam dosyasının ismini "Başlık" kısmına yazmaya ve dosya yolunda (FTP dosya adı) düzenleme yapmaya yarıyor ancak yüklenen dosyanın adının başında Türkçe karakter varsa başlık kısmına yazarken siliyor. Yani function update_attachment_title kısmındaki işlemde bir sıkıntı var. "Çanakkale Savaşı" isminde bir dosya yüklediğimde Başlık kısmına (buradaki) "anakkale Savaşı" yazıyor. Bunu nasıl düzeltebilirim acaba?
- 19-04-2021, 20:21:32set_transient( '_clean_image_filenames_original_filename', $original_filename['filename'], 60 );
$original_filename= get_transient( '_clean_image_filenames_original_filename');
burda bişey olabilirmi - 19-04-2021, 20:51:48PHP bilgim çok az hocam, altına 2. satırı eklemem gerektiğimi mi ima ettiniz acaba şu şekilde: https://prnt.sc/11pl9fe Ekledim sonuç değişmedi.erolkarakoy adlı üyeden alıntı: mesajı görüntüle
- 19-04-2021, 20:54:33bundan bahsetmiştim
public function update_attachment_title( $attachment_id ) {
$original_filename = set_transient( '_clean_image_filenames_original_filename', $original_filename['filename'], 60 );
if ( $original_filename ) {
wp_update_post( - 19-04-2021, 20:58:28Bu şekilde başlık kısmına sadece "1" yazıyor hocam.erolkarakoy adlı üyeden alıntı: mesajı görüntüle
Şu şekilde yaptım:
public function update_attachment_title( $attachment_id ) { $original_filename = set_transient( '_clean_image_filenames_original_filename', $original_filename['filename'], 60 ); if ( $original_filename ) { wp_update_post( array( 'ID' => $attachment_id, 'post_title' => $original_filename, ) ); delete_transient( '_clean_image_filenames_original_filename' ); } } - 19-04-2021, 21:50:54komple dosyayı atma şansın varmı gönderim formu ve işlemin yapıldığı .php
- 19-04-2021, 22:42:51Direk functions.php içerisindeki kodların tümünü ekledim hocam, bu iş için yazılmış ya da bağlantılı başka bir kod yok. Başka işlemler yapılıyorsa Wordpress tarafında yapılıyordur. Bir gönderim formu yok, işlem Wordpress'e ortam dosyası(fotoğraf, video, pdf..vs) yükleme şeklinde oluyor.erolkarakoy adlı üyeden alıntı: mesajı görüntüle
- 19-04-2021, 22:53:18bişey dikkatimi çekti tek gene burda filename yani dosya adı başlık kısmının post adı ne ona bak bi belk ifarklı dosyada olabilirSkyGhostAir adlı üyeden alıntı: mesajı görüntüle
- 19-04-2021, 23:00:46sana zahmet bu formun ne işe yaradığını anlatırmısın dosya adınımı değiştiriyor yazdığın birşeyimi dğeiştiriyor