Пользовательские поля в WordPress WXR импортируются, но не отображаются?

#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. Есть ли у кого-нибудь еще опыт импорта значений в пользовательские поля?
  2. Если да, кто-нибудь сталкивался (и, надеюсь, преодолел) с этой проблемой?

Заранее спасибо!

Ответ №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() .

Надеюсь, это избавит кого-то от головной боли в будущем.