Я хочу експортувати всі категорії Wordpress (без публікацій, лише категорії) з одного блогу в інший. Як я можу це зробити?
Я хочу експортувати всі категорії Wordpress (без публікацій, лише категорії) з одного блогу в інший. Як я можу це зробити?
Відповіді:
Ця відповідь по суті є такою ж, як і унсальська, але я хотів би трохи допрацювати, тому що, незважаючи на правильність, його відповідь мені не допомогла (я просто намагався згадати, що робив у минулому, я повинен був прочитати його більш уважно, і я б це зрозумів, але, думаю, для інших повний опис був би корисним).
Щоб експортувати ієрархію повної категорії, потрібно експортувати "Весь вміст"
Будь-який інший варіант не дасть вам повних даних (наприклад, експорт публікації з усіма категоріями, позначеними в основному, працює, але ви втрачаєте всі дані про батьківство / ієрархію щодо таксономій, які є ієрархічними).
Коли ви експортуєте "Весь вміст", у отриманому файлі є розділ із даними про ваші умови. Якщо ви переглянете файл, його слід знайти досить легко, після авторів і перед "елементами" (тобто повідомленнями).
Ви можете просто імпортувати це та видалити вміст, якщо це варіант *
Імпорт повного файлу відмінно повторить ієрархію таксономії, але, очевидно, також імпортує всі сторінки та публікації. Якщо їх не так вже й багато, ніж розглянути можливість їх видалення вручну. Це займе так багато часу, якщо ви зробите це масово, а їх налічується менше сотні (пам’ятайте, що ви можете скористатися параметрами екрана на екрані «Редагувати повідомлення», щоб показати більше, ніж за замовчуванням, і, таким чином, масово редагувати більше часу).
Якщо у вас занадто багато вмісту, щоб видалити все це, вам потрібно відредагувати файл 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 і переконайтесь, що все точно так, як ви очікували.
Удачі!
Я вирішив цю проблему за допомогою 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_
посилається на вихідну таблицю
Ви не можете експортувати лише категорії (або загалом таксономії). Просто експортуйте весь вміст за допомогою інструментів / експорту, і ви можете видалити вміст, за винятком категорій, з xml.
Яка тут ваша кінцева мета? Просто, щоб отримати список категорій від одного блогу до іншого? Або ви намагаєтесь перемістити весь вміст, який знаходиться під категорією чи категоріями, до іншої установки WordPress?
Це якось потворно, але ви можете експортувати весь вміст, а потім просто видалити вміст із категорій або видалити ті категорії, які ви не хочете. Напевно, це був би один із найшвидших шляхів до досягнення вашої мети.
Якщо у вас є доступ до таблиць баз даних, ви можете зробити експорт дампів mysql таблиць wp_term_relationships, wp_term_taxonomy, wp_terms та імпортувати їх у нову установку wordpress. Я щойно робив це між двома встановленнями WP з більш ніж 300 категоріями, і це працювало чудово.