投稿編集者の電子メール(または他のユーザーメタフィールド)と共に投稿編集ダッシュボードメタボックスに配置する必要があります。そのため、管理者がこの投稿を確認したときに編集できます。
$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_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;
}