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

Я переношу сайт со старой 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. Если да, то кто-нибудь сталкивался (и, надеюсь, преодолел) эту проблему?

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


person jlengstorf    schedule 30.10.2011    source источник


Ответы (1)


На всякий случай, если кому-то нужен ответ на этот вопрос: проблема возникла из-за использования расширенных настраиваемых полей плагин.

Виной всему была функция get_field(), созданная ACF.

Чтобы решить проблему, вместо использования:

<?php get_field('custom-field'); ?>

Использовать:

<?php echo get_post_meta($post->ID, 'custom-field', TRUE); ?>

Ознакомьтесь с Кодексом WordPress для получения дополнительной информации о get_post_meta().

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

person jlengstorf    schedule 05.12.2011