Intereting Posts
Существует ли веб-служба XML, которая может получать сообщения, категории и другие данные с сайта? Получать ежедневные номера сообщений из фида Как отображать связанные записи по подкатегории, а не родительскую категорию pre_get_posts, tax_query, meta_query – Что происходит? Добавить суффикс для загруженных изображений Flush_rewrite_rules не работает при обновлении настроек Изменить URL-адрес категории WordPress Получение уведомлений об обновлении 3.6.1 Заказ пользовательских полей по алфавиту Ссылка FROM attachment на полный пост и получить значения настраиваемых полей на странице вложений? Удалить возможность постоянного удаления изображения из медиа-библиотеки как получить идентификатор комментария в переднем конце при нажатии кнопки REPLY? WordPress Thumbnail добавить действие, если нет миниатюры Как сравнить число с идентификатором должности в определенной категории Пользовательские поля и автоматическое сохранение

получить сообщение об авторе id out loop

Мне нужно разместить в метадаре панели сообщений post edit с почтовым электронным письмом (или другими полями метаданных пользователя). Поэтому его можно отредактировать, когда администратор просмотрит этот пост.

$meta_id = get_the_author_meta( 'user_email', $user_id ); $meta_box = array( 'id' => 'my-meta-box', 'title' => 'DANE FIRMY', 'page' => 'post', 'context' => 'normal', 'priority' => 'high', 'fields' => array( array( 'name' => 'E-mail box', 'id' => 'mail', 'type' => 'text', 'std' => $meta_id ) ) ); 

Этот код работает, когда $ user_id является целым числом (когда я вручную кладу туда, например, 4), но я хочу динамически получить текущий идентификатор автора ( $user_id ).

get_the_author_meta('user_mail') должен работать без указания $user_id (codex говорит, что :)), но код находится в functions.php и вне цикла, поэтому он не работает. Я начинаю с WordPress и PHP, поэтому я не знаю, что делать дальше.

Также попробовал это:

 global $post; $user_id=$post->post_author; 

Solutions Collecting From Web of "получить сообщение об авторе id out loop"

Самый простой способ – использовать get_post_field() :

 $post_author_id = get_post_field( 'post_author', $post_id ); 

Для получения дополнительной информации по этой проблеме: посмотрите на этот ответ StackOverflow .

Вы можете использовать следующее:

 /** * Gets the author of the specified post. Can also be used inside the loop * to get the ID of the author of the current post, by not passing a post ID. * Outside the loop you must pass a post ID. * * @param int $post_id ID of post * @return int ID of post author */ function wpse119881_get_author( $post_id = 0 ){ $post = get_post( $post_id ); return $post->post_author; } 
 add_action( 'edit_form_after_title', 'myprefix_edit_form_after_title' ); function myprefix_edit_form_after_title() { global $post; $author_id=$post->post_author; $authord = get_the_author_meta( 'user_email', $author_id); echo $authord; } 

С помощью этой функции я смог отобразить сообщение автора сообщения в окне редактирования сообщений. Все еще не знаю, как заставить его работать с настраиваемым мета-полем, но я думаю, что теперь я ближе.