Як експортувати та імпортувати таксономії (категорія, тег та / або спеціальна таксономія) та їх умови


10

Я хочу експортувати всі категорії Wordpress (без публікацій, лише категорії) з одного блогу в інший. Як я можу це зробити?


Ви спробували отримати доступ до керування> Експорт з панелі адміністратора блогу.

Немає меню керування, є лише меню Інструменти / Експорт, але це не дозволяє мені експортувати лише категорії
chubbyk

Вибачте за це, я прочитав це з блогу в Інтернеті. Ви могли б зробити це на рівні бази даних?

Якщо вам потрібні прості зусилля, спробуйте плагін " Експорт категорій" . wordpress.org/plugins/export-categories

Відповіді:


5

Ця відповідь по суті є такою ж, як і унсальська, але я хотів би трохи допрацювати, тому що, незважаючи на правильність, його відповідь мені не допомогла (я просто намагався згадати, що робив у минулому, я повинен був прочитати його більш уважно, і я б це зрозумів, але, думаю, для інших повний опис був би корисним).

Щоб експортувати ієрархію повної категорії, потрібно експортувати "Весь вміст"

Будь-який інший варіант не дасть вам повних даних (наприклад, експорт публікації з усіма категоріями, позначеними в основному, працює, але ви втрачаєте всі дані про батьківство / ієрархію щодо таксономій, які є ієрархічними).

Коли ви експортуєте "Весь вміст", у отриманому файлі є розділ із даними про ваші умови. Якщо ви переглянете файл, його слід знайти досить легко, після авторів і перед "елементами" (тобто повідомленнями).

Ви можете просто імпортувати це та видалити вміст, якщо це варіант *

Імпорт повного файлу відмінно повторить ієрархію таксономії, але, очевидно, також імпортує всі сторінки та публікації. Якщо їх не так вже й багато, ніж розглянути можливість їх видалення вручну. Це займе так багато часу, якщо ви зробите це масово, а їх налічується менше сотні (пам’ятайте, що ви можете скористатися параметрами екрана на екрані «Редагувати повідомлення», щоб показати більше, ніж за замовчуванням, і, таким чином, масово редагувати більше часу).

Якщо у вас занадто багато вмісту, щоб видалити все це, вам потрібно відредагувати файл 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: авторські теги, що надходять раніше, і безліч тегів елементів, що надходять після. Найголовніше: не видаляйте теги закриття / каналу та / rss внизу! Без них XML не перевірятиметься.

ОБОВ'ЯЗКОВО ви перевірите результати імпорту відредагованого файлу, перш ніж використовувати його на веб-сайті, що живе Спробуйте імпортувати його в свіжу інсталяцію локально і перевірте, чи не виходить з нього повністю, а потім перевірте екран списку категорій у wp-admin і переконайтесь, що все точно так, як ви очікували.

Удачі!


1
Зауважте, що це не додасть ієрархію категоріям, які вже створені. Він призначатиме лише батьківські категорії підкатегоріям, які ще не існують.
Заде

4

Я вирішив цю проблему за допомогою 2 запитів.

Думаю, це не найкращий спосіб, але точно не найбезпечніший . Крім того, це передбачає, що ви працюєте над тією ж базою даних (якщо це не так, ви можете легко експортувати запит, а потім імпортувати в інший db).

Я використовував це в порожній установці 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'
         )
  ;

[A] nyway newwp_посилається на таблицю, до якої потрібно імпортувати, а oldwp_посилається на вихідну таблицю


2

Ви не можете експортувати лише категорії (або загалом таксономії). Просто експортуйте весь вміст за допомогою інструментів / експорту, і ви можете видалити вміст, за винятком категорій, з xml.


2

Яка тут ваша кінцева мета? Просто, щоб отримати список категорій від одного блогу до іншого? Або ви намагаєтесь перемістити весь вміст, який знаходиться під категорією чи категоріями, до іншої установки WordPress?

Це якось потворно, але ви можете експортувати весь вміст, а потім просто видалити вміст із категорій або видалити ті категорії, які ви не хочете. Напевно, це був би один із найшвидших шляхів до досягнення вашої мети.


2

Якщо у вас є доступ до таблиць баз даних, ви можете зробити експорт дампів mysql таблиць wp_term_relationships, wp_term_taxonomy, wp_terms та імпортувати їх у нову установку wordpress. Я щойно робив це між двома встановленнями WP з більш ніж 300 категоріями, і це працювало чудово.


дякую, це добре працювало на моєму кінці.
Nikhil VJ
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.