#wordpress #import #export #custom-fields
#wordpress #импорт #экспорт #пользовательские поля
Вопрос:
Я нахожусь в процессе переноса сайта со старой CMS на WordPress, и я использую формат WXR.
Мне удалось загрузить сообщения в WordPress с сохраненными изображениями, категориями, тегами и комментариями, но я зависаю на пользовательских полях.
Записи для этого конкретного сайта используют субтитры, для которых я создал настраиваемое поле в установке WP. Он отображается в WXR следующим образом:
<wp:postmeta>
<wp:meta_key>subtitle</wp:meta_key>
<wp:meta_value><![CDATA[Subtitle Goes Here]]></wp:meta_value>
</wp:postmeta>
Я продублировал это в классе, который я использую для этого экспорта, и я проверил, что информация сохраняется в wp_postmeta
таблице в базе данных:
meta_id | post_id | meta_key | meta_value
447 | 2 | subtitle | Subtitle Goes Here
Однако, когда я открываю сообщение, подзаголовок не отображается. Его также нет, когда я редактирую сообщение.
Когда я редактирую сообщение и добавляю субтитры с помощью WordPress, он добавляет вторую строку wp_postmeta
и затем отображается правильно.
У меня возникли проблемы с поиском чего-либо в Интернете или на SO, что решает эту проблему, поэтому мне интересно, если:
- Есть ли у кого-нибудь еще опыт импорта значений в пользовательские поля?
- Если да, кто-нибудь сталкивался (и, надеюсь, преодолел) с этой проблемой?
Заранее спасибо!
Ответ №1:
На всякий случай, если кому-то нужен ответ на этот вопрос: проблема возникла из-за использования плагина Advanced Custom Fields.
Виновником была get_field()
функция, созданная ACF.
Чтобы устранить проблему, вместо использования:
<?php get_field('custom-field'); ?>
Использовать:
<?php echo get_post_meta($post->ID, 'custom-field', TRUE); ?>
Ознакомьтесь с Кодексом WordPress для получения дополнительной информации get_post_meta()
.
Надеюсь, это избавит кого-то от головной боли в будущем.