get_column(); if ( method_exists( $this, $func ) ) { // @phpstan-ignore method.dynamicName return $this->$func( $column, is_string( $value ) ? $value : (string) $value ); } $func = 'get_' . $column->get_type(); if ( method_exists( $this, $func ) ) { // @phpstan-ignore method.dynamicName return $this->$func( $column, is_string( $value ) ? $value : (string) $value ); } return (string) $value; } /** * Get a post tag given the ID * * @param Schema\Column $column Column. * @param integer $value Value. * @return string */ public function get_post_tag( $column, $value ) { return $this->get_term( $column, $value ); } /** * Get a post category given the ID * * @param Schema\Column $column Column. * @param integer $value Value. * @return string */ public function get_category( $column, $value ) { return $this->get_term( $column, $value ); } /** * Get a term name given the ID * * @param Schema\Column $column Column. * @param integer $value Value. * @return string */ public function get_term( $column, $value ) { $term = get_term( $value, $column->get_column() ); if ( $term instanceof WP_Term ) { return $term->name; } return (string) $value; } /** * Get a post type given the name * * @param Schema\Column $column Column. * @param string $value Value. * @return string */ public function get_post_type( $column, $value ) { $names = get_post_types( [ 'name' => $value ], 'objects' ); if ( isset( $names[ $value ] ) ) { return $names[ $value ]->label; } // @phpstan-ignore cast.useless return (string) $value; } /** * Get a user given the ID * * @param Schema\Column $column Column. * @param string $value Value. * @return string */ public function get_post_author( $column, $value ) { return $this->get_user( $column, $value ); } /** * Get a user given the ID * * @param Schema\Column|string $column Column. * @param string $value Value. * @return string */ public function get_user( $column, $value ) { $user = get_userdata( intval( $value, 10 ) ); if ( $user ) { return $user->display_name; } return $value; } /** * Get a post title given the ID * * @param Schema\Column $column Column. * @param integer $value Value. * @return string */ public function get_post_title( $column, $value ) { $post = get_post( $value ); if ( is_object( $post ) ) { return $post->post_title; } return (string) $value; } /** * Get a date in user's date format * * @param Schema\Column $column Column. * @param string $value Value. * @return string */ public function get_date( $column, $value ) { $timestamp = mysql2date( 'U', $value ); if ( $timestamp === false ) { return $value; } return gmdate( get_option( 'date_format' ) . ' ' . get_option( 'time_format' ), intval( $timestamp, 10 ) ); } }