Поддержка Проблемы и решения Получить meta key/value при создании поста

  • Решено svg

    (@svg)


    исходная задача:
    При создании поста однократно отправлять смску с данными. Использую add_action( 'auto-draft_to_publish', 'чтотоделаем' ); add_action( 'draft_to_publish', 'чтотоделаем' );

    Все работает, post->ID и проч. есть. А как получить метаполе/значение в этот момент?
    get_post_meta() говорит что нужного метаполя нет(оно точно есть!). Что я делаю не так?

Просмотр 3 ответов — с 1 по 3 (всего 3)
  • Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    get_post_meta() говорит что нужного метаполя нет

    На чистой установке воспроизвести не удалось — если у записи есть поле test, то оно успешно выводится (можно посмотреть в инструментах разработчика на вкладке Network → Response):

    
    function my_get_meta_value( $post ) {
    	var_dump( get_post_meta( $post->ID, 'test', true ) );
    }
    add_action( 'auto-draft_to_publish', 'my_get_meta_value' );
    add_action( 'draft_to_publish', 'my_get_meta_value' );
    

    Что я делаю не так?

    Было бы здорово увидеть весь код, без этого можно только гадать.

    Автор svg

    (@svg)

    Локализовал проблему: если использовать штатный метабокс «Произвольные поля» — все работает, key/value есть.
    Но я использую ACF, и на момент срабатывания хуков метаполя нет или оно пустое.
    Вот здесь stackoverflow советуют дополнительно save_post делать. Попробую, хотя как-то неизящно выглядит)

    Автор svg

    (@svg)

    Внутри draft_to_publish выполняем add_action save_post.
    key/value появляются, все работает.

Просмотр 3 ответов — с 1 по 3 (всего 3)
  • Тема «Получить meta key/value при создании поста» закрыта для новых ответов.