WordPress как на ладони
Наставник Трепачёв Д.П., phphtml.net wordpress jino

Проблемы — Апостроф (все неизвестные нюансы)

При переезде с хостинга, с IspManager на cPanel - в именах файлов были апострофы типо: file's.jpg и name's.png и так далее в cPanel сразу эти файлы становятся недоступными на сайте , подскажите как решить или как бороться?

Есть возможность изменить имена архива изображений через total commander и убрать разом все апострофы - но как в базе данных убрать апострофы из адресов загруженных изображений.

СПАСИБО ЗА ОТВЕТ.

решение нашел в неожиданном месте.

Вот вся инфа:

1 Был перенос сайта
2 Перенос с ispManager на cPanel
3 запаковал архив в zip на хосте, скачал и распаковал у себя на ПК
4 После проверки - все на месте
5 Загружаю на новый хост
6 пропали частично файлы при подгрузке страниц на сайте - а в архивах они есть.
7 не добавляются в галерею файлы, с апострофами в именах на движке wordpress на cPanel, на ispManager все впорядке
8 начал колдовать с базами и прочее
9 перенес с 1-го Хостинга с ispManager на 2-й Хостинг с ispManager и проблема повторилась
10 Выяснилось, что cPanel не виновата

оказалось, что при алгоритме действий: запаковка zip на ispManager->скачивание на ПК-> отправка на новый хост (панель управления не важна) -> распаковка.
случилось следующее: имена name's.jpg приобрели значение (точно символы не помню) типа name&Bty0s.jpg - и это повторилось со всеми файлами.

проверять архивацию было долго на оригинальном хосте - были архивы на моем ПК - я их распаковал и запаковал в .tar архивы и отправил на 2 и 3 ХОСТИНГИ (cPanel и ispManage) - и все оказалось впорядке.

-- остался вопрос , почему на хостинге с cPanel в вордпрес не подгружаются файлы в именах которых есть апострофы??

0
kolshix101 10 месяцев назад
  • 0
    Kama4472

    Тебе нужно удалить апострофы из метаполя вложения '_wp_attached_file' и в БД в поле guid.

    global $wpdb;
    
    // удалим апострофы в guid 
    $wpdb->query("UPDATE $wpdb->posts SET guid = REPLACE(guid, '`', '') WHERE post_type = 'attachment'");
    
    // удалим апострофы в важном метаполе
    $attach_ids = $wpdb->query("SELECT ID FROM $wpdb->posts WHERE post_type = 'attachment'");
    
    $i = 1;
    foreach( $attach_ids as $attach_id ){
    	$old = get_post_meta( $attach_id, '_wp_attached_file', 1 );
    	$new = str_replace( '`', '', $old );
    
    	if( update_post_meta( $attach_id, '_wp_attached_file', $new ) )
    		echo $i++ ." ОК - $attach_id";
    	else
    		echo "BAD - $attach_id";
    }
    
    kolshix 10 месяцев назад

    Спасибо - эта инфа ещё пригодится , выше описал полностью свою ситуацию.

    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Регистрация. Вход.