我在我的主题中的functions.php文件中有这个函数: 样本代码......
function getTheAuthor($x) {
global $post;
$post = get_post($x);
$author_name = get_author_name($post->post_author);
return 'author: '.$author_name;
}
结束示例代码 所以,$ x是一个字符串(让我们说" 375") 如果我将该行更改为$ post = get_post(375);一切正常, 如果我离开行$ post = get_post($ x),我得到一个空对象.... 如果我尝试将$ x转换为整数,它会将该字符串转换为零。 ---和intval($ x)= 0; 我在这里缺少什么?
感谢您的帮助
答案 0 :(得分:0)
有一种更好的方法可以做到这一点(并且,在所有情况下,您都不需要global $post
,因为您将帖子ID传递给该函数)。帖子作者存储为具有post_author
键的帖子元字段。因此,您可以使用以下命令返回帖子的作者ID:
$post_author_id = get_post_field( 'post_author', $post_id );
所以在你的情况下,我会使用:
function getTheAuthor( $post_id ) {
$post_author_id = get_post_field( 'post_author', $post_id );
// get_author_name() is deprecated...
$author_name = get_the_author_meta( 'display_name', $post_author_id );
return 'author: ' . $author_name;
}
详细了解get_the_author_meta()
in the Codex。