问题描述
我需要在后期编辑仪表板 metabox 与发布作者 e-mail(或其他用户元字段) 。所以当管理员评论这篇文章时,可以进行编辑。
$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)) 但是我想动态获取当前作者 ID($user_id
) 时,此代码工作。
get_the_author_meta('user_mail')
应该没有指定 $user_id
(codex 说:)),但是代码是在 functions.php
和循环之外,所以它不工作。我从 Wordpress 和 PHP 开始,所以我不知道下一步该怎么做。
也试过这个:
global $post;
$user_id=$post->post_author;
最佳解决方案
最简单的方法是使用 get_post_field()
:
$post_author = get_post_field( 'post_author', $post_id );
有关这个问题的更多细节:看看 this StackOverflow answer 。
次佳解决方案
您可以使用以下内容:
/**
* 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;
}
参考文献
注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。