当前代码调用get_the_author
, 因此,它显示的是用户配置的显示名称,而不是具体的用户名。一种修复方法是将所有显示名称更改为First-Last。
或者,您需要编写一个新的列处理程序。默认情况下,它检查名为_column_<name>
或column_<name>
调用,如果找不到,则尝试操作:
/**
* Fires for each custom column of a specific post type in the Posts list table.
*
* The dynamic portion of the hook name, `$post->post_type`, refers to the post type.
*
* @since 3.1.0
*
* @param string $column_name The name of the column to display.
* @param int $post_id The current post ID.
*/
do_action( "manage_{$post->post_type}_posts_custom_column", $column_name, $post->ID );
因此,您需要定义一个处理程序,例如。
function manage_stores_custom_column_handler( $column_name, $post_id ) {
if ( $column_name == \'author_fullname\' ) {
$post = get_post( $post_id );
if ( $post && $post->post_author ) {
$author = get_userdata( $post->post_author );
if ($author->first_name && $author->last_name ) {
echo $author->first_name . \' \' . $author->last_name;
} else {
// Fall back to display name
echo $author->display_name;
}
return;
}
}
add_action( \'manage_stories_posts_custom_column\',
\'manage_stores_custom_column_handler\', 10, 2 );
请注意,此列不会像原始列那样被链接:不幸的是,执行此操作的代码位于WP\\U Posts\\U List\\U表中的受保护方法中,因此您不能仅调用它,而是可以在需要时将其复制到您自己的代码中。