在循环外获取帖子作者ID

时间:2013-10-23 作者:th3rion

我需要将post-author电子邮件(或其他用户元字段)放在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\\u id是一个整数(例如,当我手动将其放在那里时)但我想动态获取当前作者id($user_id ).

get_the_author_meta(\'user_mail\') 应在不指定的情况下工作$user_id (codex说:))但代码在functions.php 而且在循环之外,所以它不起作用。我从Wordpress和PHP开始,所以我不知道接下来要做什么。

还尝试了以下操作:

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

3 个回复
最合适的回答,由SO网友:th3rion 整理而成

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;
}
使用此功能,我可以在post edit屏幕中显示post author电子邮件。仍然不知道如何使它与自定义元字段一起工作,但我想我现在更接近了。

SO网友:Mayeenul Islam

最简单的方法是使用get_post_field():

$post_author_id = get_post_field( \'post_author\', $post_id );
有关此问题的更多详细信息,请参阅this StackOverflow answer.

SO网友:Stephen Harris

您可以使用以下选项:

/**
 * 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;
}

结束

相关推荐

在哪里放置代码以获取自定义分类术语ID?

首先,我要说的是,我对Wordpress定制还不熟悉,不知道如何编写代码,但我可以在涉及简单复制/粘贴指令的定制中摸索。所以,这个问题非常基本。很抱歉我正在使用一个插件,该插件要求为我创建的自定义分类法提供术语id。我发现一些帖子解释了如何做到这一点,并给出了一些php代码片段(例如。http://wordpress.org/support/topic/how-to-echo-custom-taxonomy-id). 但我真的不知道该把代码放在哪里。你能帮忙吗?更新:我确实知道如何通过复制/粘贴创建ph