Как экспортировать и импортировать таксономии (категории, теги и/или пользовательские таксономии) и их термины

25 нояб. 2011 г., 19:22:37
Просмотры: 45.3K
Голосов: 11

Я хочу экспортировать все категории WordPress (только категории, без записей) с одного блога на другой. Как это сделать?

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

Вы пробовали зайти в раздел Управление>Экспорт в панели администратора блога?

User User
25 нояб. 2011 г. 19:40:18

Нет меню "Управление", есть только меню Инструменты/Экспорт, но оно не позволяет экспортировать только категории

chubbyk chubbyk
25 нояб. 2011 г. 19:44:49

Извините, я прочитал это в одном блоге. Может быть, вы сможете сделать это на уровне базы данных?

User User
25 нояб. 2011 г. 19:59:46

Если вам нужно простое решение, попробуйте плагин Export Categories. https://wordpress.org/plugins/export-categories/

User User
17 окт. 2016 г. 09:50:27
Все ответы на вопрос 7
1

Этот ответ по сути такой же, как у Ünsal, но я хотел бы немного подробнее разобрать его, потому что, несмотря на правильность, его ответ не помог мне (я просто пытался вспомнить, что делал в прошлом, и если бы я внимательнее прочитал его ответ, я бы разобрался, но думаю, что для других полное описание будет полезно).

Чтобы экспортировать полную иерархию категорий, вам нужно экспортировать "Всё содержимое"

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

Когда вы экспортируете "Всё содержимое", в результирующем файле есть раздел с данными о ваших терминах. Если вы просмотрите файл, его будет легко найти — он идет после авторов и перед "items" (то есть записями).

Вы можете просто импортировать этот файл и удалить содержимое, если это вариант*

Импорт полного файла идеально воссоздаст иерархию таксономий, но также, очевидно, импортирует все страницы и записи. Если их не слишком много, подумайте о ручном удалении. Это не займет много времени, если делать это массово, и их меньше сотен (помните, что вы можете использовать "Настройки экрана" на странице редактирования записей, чтобы отображать больше элементов по умолчанию и, таким образом, массово редактировать больше за раз).

Если у вас слишком много содержимого для удаления, вам нужно вручную отредактировать WXR-файл, чтобы оставить только термины, которые вы хотите сохранить.

Редактирование WXR-файла для удаления содержимого

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

Вы обнаружите, что в WXR есть 1-3 типа определений терминов: один для категорий, один для "меток" и один для "терминов". "Пользовательские таксономии" используют термины, тогда как старомодные категории и метки имеют свой собственный специальный формат.

ПРИМЕР КАТЕГОРИИ

<wp:category><wp:term_id>8880</wp:term_id><wp:category_nicename>runner-up-proposals</wp:category_nicename><wp:category_parent>second-round-proposals</wp:category_parent><wp:cat_name><![CDATA[Runner-up Proposals]]></wp:cat_name></wp:category>

ПРИМЕР МЕТКИ

<wp:tag><wp:term_id>122</wp:term_id><wp:tag_slug>ave-maria</wp:tag_slug><wp:tag_name><![CDATA[Ave Maria]]></wp:tag_name></wp:tag>

ПРИМЕР ТЕРМИНА ПОЛЬЗОВАТЕЛЬСКОЙ ТАКСОНОМИИ

<wp:term><wp:term_id>8579</wp:term_id><wp:term_taxonomy>gv_tools</wp:term_taxonomy><wp:term_slug>digital-video</wp:term_slug><wp:term_parent></wp:term_parent><wp:term_name><![CDATA[Digital Video]]></wp:term_name></wp:term>

Итак, вам нужно удалить всё содержимое, кроме этих тегов категорий/меток/терминов из WXR-файла. А именно теги wp:author, которые идут в начале, и множество тегов item, которые идут после. Самое главное: не удаляйте закрывающие теги /channel и /rss в конце! Без них XML не пройдет валидацию.

ОЧЕВИДНО, вы протестируете результаты импорта вашего отредактированного файла перед использованием на рабочем сайте. Попробуйте импортировать его в чистую установку локально и убедитесь, что он не завершается ошибкой, затем проверьте экран списка категорий в wp-admin и убедитесь, что всё именно так, как вы ожидали.

Удачи!

29 апр. 2014 г. 21:02:12
Комментарии

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

Zade Zade
10 окт. 2019 г. 09:09:39
0

Я решил эту проблему с помощью 2 запросов.

Думаю, это не самый лучший способ, но точно не самый безопасный. Кроме того, он предполагает, что вы работаете с одной и той же базой данных (если это не так, вы можете легко экспортировать запрос, а затем импортировать его в другую БД).

Я использовал этот метод на пустой установке WordPress:

1 - Импорт терминов категорий:

INSERT INTO newwp_terms
SELECT te.*
  FROM oldwp_terms te
  JOIN oldwp_term_taxonomy ta
    ON te.term_id = ta.term_id
 WHERE ta.taxonomy = 'category'
;

2 - Импорт связей категорий и их описаний

INSERT INTO newwp_term_taxonomy
SELECT term_taxonomy_id,term_id,taxonomy,description,parent,0
  FROM oldwp_term_taxonomy ta
  WHERE ta.term_taxonomy_id IN
          (
           SELECT ta2.term_taxonomy_id
             FROM oldwp_terms te
             JOIN oldwp_term_taxonomy ta2
               ON te.term_id = ta2.term_id
            WHERE ta.taxonomy = 'category'
         )
;

В любом случае newwp_ относится к таблице, в которую вы хотите импортировать данные, а oldwp_ относится к исходной таблице

26 янв. 2012 г. 01:15:36
0

Вы не можете экспортировать только категории (или таксономии в целом). Просто экспортируйте весь контент через Инструменты/Экспорт, и затем вы сможете удалить из xml всё, кроме категорий.

26 нояб. 2011 г. 01:53:46
0

Какова ваша конечная цель? Просто получить список категорий с одного блога на другой? Или вы пытаетесь переместить весь контент внутри категории или категорий на другую установку WordPress?

Это может быть некрасиво, но вы можете экспортировать весь контент, а затем просто удалить контент внутри категорий или удалить категории, которые вам не нужны. Вероятно, это будет один из самых быстрых способов достижения вашей цели.

28 нояб. 2011 г. 04:26:48
1

Если у вас есть доступ к таблицам базы данных, вы можете сделать экспорт дампа MySQL таблиц wp_term_relationships, wp_term_taxonomy, wp_terms и импортировать их в новую установку WordPress. Я только что сделал это между двумя установками WP с более чем 300 категориями, и всё сработало отлично.

30 мар. 2014 г. 13:08:44
Комментарии

спасибо, у меня тоже сработало.

Nikhil VJ Nikhil VJ
15 сент. 2019 г. 21:03:18
0

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

Название плагина: WP Export Categories & Taxonomies От timersys

6 янв. 2022 г. 14:32:54
0

Я уже давно не занимаюсь программированием, поэтому нашел этот простой способ получить все теги с сайта на Wordpress. Перейдите в раздел Записи > Метки, выделите все теги и другую информацию, скопируйте и вставьте в документ Excel или другую табличную программу; данные автоматически разделятся на несколько столбцов. В шестом столбце (slug) будут находиться теги, отделенные от остальных данных на странице. Чтобы убрать дефисы, просто выполните поиск и замену дефисов на пробелы. У вас может быть несколько страниц с тегами, но это не займет много времени. Я загружаю это в программу с ИИ, чтобы удалить лишние переносы строк или отсортировать по алфавиту, если добавляю новые теги. Я использую этот метод для сбора ресурсов для SEO-работы. Конечно, это не решение для программистов, но так как я нашел эту ветку с тем же вопросом, надеюсь, что это поможет кому-то вроде меня!

14 июн. 2023 г. 03:52:28