如何在自定义帖子类型栏中显示名字和姓氏

时间:2020-05-21 作者:user10980228

使用下面的代码,我将显示创建自定义帖子类型条目的用户,但仅显示其用户名。这是不够有用的,因为我想显示他们的全名,即:名字和姓氏,但我不知道这是否可能或如何实现。我试着用“first\\u name”替换“author”,但这并没有给我任何帮助。

function set_stories_columns($columns) {
    return array(
        \'cb\' => \'<input type="checkbox" />\',
        \'title\' => __(\'Title\'),
        \'author\' => __(\'Author\'),
        \'date\' => __(\'Date\'),
    );
}
add_filter(\'manage_stories_posts_columns\' , \'set_stories_columns\');

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

当前代码调用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表中的受保护方法中,因此您不能仅调用它,而是可以在需要时将其复制到您自己的代码中。

相关推荐

custom user table columns

我正在这样做,根据我阅读的所有文档,应该覆盖manage users表中的每一列值。由于某些原因,WP 4.1中不起作用。任何见解都值得赞赏。function retro_custom_users_table_content($value, $column_name, $user_id){ $value = \"hi\"; return $value; } add_filter(\'manage_users_custom_column\',\'retro_c