Intereting Posts
Как вставить ярлык галереи в мета-окно Программно редактировать текст виджета get_terms и meta_value результаты пустые Как превратить shortcode в php? Как удалить ссылки из функции «Получить список терминов»? Как правильно удалить и переименовать пользовательские настройки / раздел / элемент управления в настройке темы? Возвращать единый таксономический термин вне цикла Как добавить динамический контент в заголовке и мета-описании в теме WordPress для главной страницы, страницы, категории, тега и страниц Vagrant скрипт для настройки всех общих комбинаций версий PHP / WordPress Как мне получить путь к каталогу текущей темы? Выполнять внутреннюю переадресацию в WordPress? Как я могу получить пользовательский тип сообщения, назначенный текущей пользовательской таксономии для запроса? Где псевдоним используется в WordPress Получение $ _POST из шаблона страницы в functions.php Сделать страницу WordPress доступной только для админов, перенаправить другие роли пользователей

Есть ли способ получить почтовые поля, используя `transition_post_status`

Сначала я попытался получить данные post_meta, и последний, я попытался get_post_field() внутри функции get_post_field() , например:

 <?php add_action( 'transition_post_status', 'yes_send_email_notification', 10, 3 ); function yes_send_email_notification( $new_status, $old_status, $post ) { if( 'mycpt' === $post->post_type && 'new' === $old_status && 'pending' === $new_status ) : $post_id = $post->ID; /** * Generate Dynamic values */ $post_view_link = get_permalink( $post_id ); $message = "My custom message<br>"; $message .= "Link: ". esc_url( $post_view_link ); //headers are duely passed //$headers = ... wp_mail( 'someone@example.com', 'New MyCPT submitted', $message, $headers ); endif; } 

Письмо работает нормально. Теперь я попытался включить post_content , post_title (и, если возможно, данные post_meta ) в содержимое электронной почты внутри функции, но, к сожалению, я не могу получить их.

 $post_id = $post->ID; $post_view_link = get_permalink( $post_id ); $post_title = get_post_field( 'post_title', $post, 'display' ); $post_content = get_post_field( 'post_content', $post, 'display' ); $post_excerpt = wp_trim_words( $post_content, 70, null ); 

Но я терплю неудачу. $post_title и $post_excerpt не заполняются. (То же самое произошло для полей post_meta )

Как я могу получить post_fields (и, если возможно, поля post_meta ) внутри функции post_meta ?

Я не уверен, почему get_post_field не работает в этой ситуации, но если вы можете получить доступ к $post->ID , вы также сможете получить $post->post_title и $post->post_content (и даже $post->post_excerpt если он есть).

Объект $ post включает стандартные метаданные, такие как автор и дата публикации. Любые метаданные в таблице wp_postmeta в базе данных могут быть найдены только с $post->ID , с помощью которых вы сможете получить свои метаданные с помощью get_metadata . В противном случае вы всегда можете напрямую запускать запрос в базе данных . Поскольку плагины имеют довольно определенную свободу в структурировании своих метаданных, в целом невозможно сказать, как структурировать этот запрос. Также: прочитайте записку Отто об этом.