Импорт WordPress XML файла размером более 8МБ

27 авг. 2013 г., 11:59:53
Просмотры: 61.5K
Голосов: 9

Я пытаюсь импортировать XML файл (из предыдущей темы WordPress) в новую тему WordPress. Проблема в том, что XML файл имеет размер 46МБ, что намного больше лимита WordPress в 8МБ. Есть ли у кого-нибудь советы/рекомендации, как импортировать этот файл?

Спасибо

apagey

1
Комментарии

Если у вас есть доступ к командной строке, вы можете попробовать WP_CLI.

Welcher Welcher
23 дек. 2014 г. 13:46:02
Все ответы на вопрос 10
3
12

ВАРИАНТ 1: Если файл WordPress WXR (XML-файл, экспортированный из WordPress) слишком большой для импорта, есть несколько способов обойти это ограничение.

  • Увеличить объем памяти, который может использовать PHP-скрипт. Примечание: Если вы используете shared-хостинг, возможно, придется запросить увеличение лимита у хостинг-провайдера.

    Увеличить лимит памяти в php.ini (например, memory_limit = 64M;). Многие хостинг-провайдеры могут не разрешить это.

    Увеличить лимит памяти через .htaccess (например, php_value memory_limit 64M). Многие хостинг-провайдеры могут не разрешить это.

    Увеличить лимит памяти через wp-config.php (например, define('WP_MEMORY_LIMIT', '64MB');)

  • Увеличить максимальное время выполнения PHP-скрипта. Примечание: Если вы используете shared-хостинг, возможно, придется запросить увеличение лимита у хостинг-провайдера.

    Увеличить максимальное время выполнения в php.ini (например, max_execution_time = 600;). Многие хостинг-провайдеры могут не разрешить это.

  • Увеличить настройки размера загружаемых файлов в PHP. Примечание: Если вы используете shared-хостинг, возможно, придется запросить увеличение лимита у хостинг-провайдера.

    Увеличить значения в php.ini (например, upload_max_filesize = 64M; и post_max_size = 64M;). Многие хостинг-провайдеры могут не разрешить это.

    Увеличить значения через .htaccess (например, php_value upload_max_filesize 64M и php_value post_max_size = 64M). Многие хостинг-провайдеры могут не разрешить это.

    Увеличить значения через строки ini_set в wp-config.php. Уточните у вашего хостинг-провайдера корректные значения.

  • Увеличить лимит размера загружаемых файлов и/или лимит пространства для загрузки файлов:

    Войдите в wp-admin как администратор.

    В разделе "Администрирование сайта" нажмите "Настройки".

    Прокрутите вниз и измените параметры "Максимальный размер загружаемого файла" и/или "Пространство для загрузки файлов блога".

  • Сжать файл с помощью GZip. На некоторых хостинг-сервисах сжатый файл может автоматически распаковываться в фоновом режиме, и WordPress даже не узнает об этом. Это может помочь уменьшить размер файла до допустимого лимита загрузки.

    В Windows используйте 7Zip для создания GZ-архива из WXR-файла.

    В Linux используйте команду gzip в терминале.

    Убедитесь, что у итогового файла есть расширение ".gz" перед загрузкой, так как это часто необходимо.

    Этот метод не гарантирует успех, так как сильно зависит от конфигурации хостинга. Если не сработает, попробуйте другой способ.

  • Разделите WordPress WXR-файл на меньшие части, распределив данные между постами и добавив заголовок/подвал в каждый файл.

Как всегда, перед импортом новых XML-файлов сделайте резервную копию базы данных блога, в который импортируете XML, а также экспортируйте XML-файл этого блога на всякий случай.

Кстати, эта информация доступна в Кодексе.

ВАРИАНТ 2: Гораздо надежнее и, вероятно, проще использовать плагин WP Migrate DB Pro (платный). Несмотря на название, с дополнением он также импортирует медиафайлы. Лично я сталкивался с ситуациями, когда ни один из вышеперечисленных методов не работал — единственным решением был этот плагин.

15 нояб. 2013 г. 23:24:26
Комментарии

Подтверждаю, решение с GZip сработало отлично. Файл размером 25 МБ превратился в 2 МБ, и WordPress отлично его распознал.

Avin Zarlez Avin Zarlez
26 окт. 2017 г. 01:02:47

Импорт через GZip сработал, но медиафайлы не загружаются

iamkingsleyf iamkingsleyf
29 авг. 2018 г. 13:33:59

GZIP — лучший вариант для меня. 6 МБ => 900 КБ

alfredo alfredo
26 мар. 2022 г. 04:20:56
11

Если у вас есть доступ к файлу .htaccess в папке www, просто добавьте следующие две строки в .htaccess:

php_value upload_max_filesize 50M
php_value post_max_size 50M

Другой способ... вы можете добавить этот код в файл functions.php вашей темы:

@ini_set( 'upload_max_size' , '50M' );
@ini_set( 'post_max_size', '50M');
27 авг. 2013 г. 12:02:10
Комментарии

.. Временно. После завершения импорта рекомендуется восстановить стандартные ограничения.

User User
27 авг. 2013 г. 12:06:22

У меня нет доступа к файлу .htaccess, второй вариант кажется выполнимым. Нужно ли размещать его в каком-то конкретном месте файла functions.php?

User User
27 авг. 2013 г. 12:10:31

Да, попробуй и сообщи, помогло ли это.

Prince Singh Prince Singh
27 авг. 2013 г. 12:11:17

К сожалению, @ini_set( 'upload_max_size' , '50M' ); @ini_set( 'post_max_size', '50M'); не работает, возвращает ошибку сервера. Есть другие предложения? Наверняка кто-то уже сталкивался с этим.

User User
27 авг. 2013 г. 15:28:49

у вас есть доступ к файлу php.ini?

Prince Singh Prince Singh
27 авг. 2013 г. 15:37:50

можете попробовать это http://docs.appthemes.com/tutorials/how-to-increase-upload-size-in-wordpress/

Prince Singh Prince Singh
27 авг. 2013 г. 15:39:59

У меня нет доступа к файлу php.ini, и руководство, которое вы прислали, тоже не сработало — я получаю ту же ошибку сервера.

User User
27 авг. 2013 г. 17:41:09

Я также пробовал разделить файл и загрузить его по частям, но это тоже не сработало.

User User
27 авг. 2013 г. 18:28:40

Возможно ли передать файл по FTP и выбрать его уже на сервере?

User User
29 авг. 2013 г. 12:57:17

Извините, не понял ваш запрос?

Prince Singh Prince Singh
29 авг. 2013 г. 13:39:36

Не думаю, что функция импорта WordPress предусматривает возможность выбора XML-файла, который уже находится на сервере. Жаль, это могло бы действительно помочь в подобной ситуации.

Ben Miller Ben Miller
5 сент. 2013 г. 19:04:29
Показать остальные 6 комментариев
0

Согласно кодексу, вы можете разбить XML-файл на части и импортировать их отдельно. Вот как я бы это сделал.

Файл экспорта WordPress в формате XML использует формат WordPress eXtended RSS (WXR) и выглядит следующим образом (некоторые строки опущены):

<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0"
>

<channel>
    <!-- несколько тегов о вашем блоге, включая title, link, description и т.д. -->

    <wp:author><!-- список авторов записей --></wp:author>

    <wp:category><!-- список категорий --></wp:category>
    <wp:tag><!-- информация о первом теге --></wp:tag>
    <wp:tag><!-- информация о втором теге и т.д. --></wp:tag>

    <generator>http://wordpress.org/?v=3.6</generator>

    <item>
        <!-- первая запись блога -->
    </item>

    <item>
        <!-- вторая запись блога и т.д. -->
    </item>
</channel>

Вам нужно разделить этот файл как минимум на 6 частей, чтобы остаться в пределах лимита 8 МБ. Создайте копии файла, чтобы у вас получилось 6 или 7 копий. Затем в каждой копии удалите некоторые элементы <item> (записи), пока размер файла не станет меньше 8 МБ. Таким образом, каждая часть будет содержать идентичную информацию в начале файла и будет отличаться только в разделе <item>. Убедитесь, что вы не включаете одну и ту же запись в несколько файлов, иначе она будет импортирована дважды. После этого импортируйте каждый файл по очереди.

5 сент. 2013 г. 19:03:29
0

Есть приложение, которое можно скачать, чтобы разделить большие XML/WXR файлы на более мелкие.

Или вы можете изменить лимиты загрузки и публикации в файле php.ini через cPanel.

15 окт. 2013 г. 16:44:12
0

Вот решение... надеюсь, вам понравится.

Вы можете изменить этот параметр, создав простой текстовый файл и поместив его в папку wp-admin.

Чтобы создать этот файл, просто откройте текстовый редактор, например TextEdit на Mac или Блокнот в Windows, и введите следующие две строки кода.

upload_max_filesize = 64M;
post_max_size = 32M;

Вы можете указать любые значения, я просто выбрал 64 и 32, так как они показались мне подходящими. Теперь сохраните файл с именем php.ini — программа спросит, хотите ли вы использовать расширение .ini, нажмите «Использовать .ini» и сохраните. Осталось только загрузить файл на сервер и поместить его в папку "wp-admin", в любом месте корневого раздела папки.

Теперь войдите в панель управления WordPress и попробуйте загрузить что-нибудь большое. Проблем быть не должно, и вы сможете загружать всё, что захотите!

13 апр. 2014 г. 06:36:40
2

всё, что вам нужно — это этот плагин

Увеличение максимального размера загружаемых файлов

Скачайте и установите с wordpress.org

введите значение (до 250 МБ) в байтах и наслаждайтесь.

Однако, если вы загружаете большой файл, вам может понадобиться установить плагин для увеличения памяти или вручную увеличить время выполнения.

13 окт. 2016 г. 15:49:42
Комментарии

Пожалуйста, отредактируйте ваш вопрос, чтобы добавить ссылку на плагин, который вы предлагаете. Также учтите, что этот плагин не будет работать, если ваш хостинг-провайдер не разрешает увеличивать значение upload_max_filesize (и, возможно, memory_limit) в PHP.

Pat J Pat J
13 окт. 2016 г. 17:48:28

Вот ссылка, но вы также можете просто поискать в разделе "Добавить плагины": https://wordpress.org/plugins/upload-max-file-size/

tmarkiewicz tmarkiewicz
28 нояб. 2018 г. 22:15:09
0

Если у вас есть доступ к WP-CLI, он предоставляет команду import, которая, без сомнения, является лучшим способом импорта больших WXR-файлов. Также доступна команда export, позволяющая экспортировать WXR-файлы с разбивкой на части указанного вами размера.

13 окт. 2016 г. 16:15:24
0

Я попробовал этот метод от Gaia, и он сработал без проблем, спасибо Gaia.

Сжать файл с помощью GZip. На некоторых хостингах gzip-архив может автоматически распаковываться в фоновом режиме, и WordPress даже не заметит разницы. Это может позволить уменьшить размер файла, чтобы он соответствовал ограничениям на максимальный размер загружаемых файлов.

В Windows используйте 7Zip для создания gz-архива из wxr-файла.

В Linux используйте команду gzip в терминале.

Убедитесь, что итоговый файл имеет расширение ".gz" перед загрузкой, так как это часто необходимо.

Этот метод не гарантированно сработает, так как сильно зависит от конфигурации хостинга. Если он не сработает, попробуйте другой способ.

•Разделите WordPress WXR-файл на более мелкие части, распределив данные между записями и вставив заголовок/подвал в каждый файл.

25 янв. 2017 г. 21:47:32
0

Я всегда считал, что самый простой способ — это редактирование файла user.ini в корневой директории WordPress или его создание.

Плагины, такие как WordFence и другие, которым требуется работа с системными настройками, часто используют этот подход, поскольку он хорошо совместим с WordPress и различными системами.

Отредактируйте или создайте файл user.ini в корневой директории WordPress, скопируйте/вставьте код ниже и сохраните его. Если вы используете кеширование, очистите его, затем обновите страницу, на которой загружаете файлы.

В моей установке WordPress память установлена на 64M, а максимальный размер файлов ограничен 5M. Измените значения upload_max_filesize и post_max_size на значение больше, чем размер файла, который вы загружаете.

; Память и размеры файлов
memory_limit = 64M
upload_max_filesize = 5M
post_max_size = 5M
file_uploads = On
max_execution_time = 300
; Конец ограничений загрузки
7 сент. 2018 г. 11:07:13
0

Я пробовал wpcli (интерфейс командной строки для WordPress), так как многие вещи обрабатываются на их стороне.

Размер моего XML-файла был примерно 10 МБ.

В wp-config.php:

set_time_limit( 86400 );
define('WP_CACHE', false);
define('WP_MEMORY_LIMIT', '1G');
define('WP_MAX_MEMORY_LIMIT', '1G');

Пример использования wpcli:

$ wp import example.wordpress.2016-06-21.xml --authors=skip
25 июн. 2019 г. 10:40:26