Add taxonomy column with meta field (ACF) content

Trying to populate the column with meta field, this way (ACF):

add_filter('manage_artist_custom_column', function ($content,$column_name,$term_id){
    $term= get_term($term_id, 'artist');
    switch ($column_name) {
        case 'artist_avatar':
            $avatar = get_field('artist_avatar', $term);
            var_dump($avatar);
            $content = $avatar['url'];
            break;
        default:
            break;
    }
    return $content;
},10,3);

add_filter( 'manage_edit-artist_columns', function ( $columns ) {
    $columns['artist_avatar'] = __('Artist Avatar', 'sage');
    return $columns;
} );

When I var_dump($avatar); I get the output:

array(24) {
  [ID]=gt;
  int(315)
  [id]=gt;
  int(315)
  [title]=gt;
  string(16) bigote-sucio-pic
  [filename]=gt;
  string(20) bigote-sucio-pic.jpg
  [filesize]=gt;
  int(238431)
  [url]=gt;
  string(66) https://futurabasura.test/app/uploads/2021/04/bigote-sucio-pic.jpg
  etc …
  etc …

But, if I try to access any of the array keys:

$content = $avatar['url'];

I get Trying to access array offset on value of type bool

Why?

Topic columns array custom-taxonomy Wordpress

Category Web


As Sally CJ suggest in comments, the error come from the terms with artist_avatar empty. So, check if is_array() before access the array, fix it:

add_filter('manage_artist_custom_column', function ($content,$column_name,$term_id){
    $term = get_term($term_id, 'artist');
    $avatar = get_field('artist_avatar', $term);

    switch ($column_name) {
        case 'artist_avatar':
            if ( is_array( $avatar ) ) {
                $content = $avatar["url"];
            } else {
                $content = __('This artist has no picture', 'sage');
            }
            break;
        default:
            break;
    }
    return $content;
},10,3);

About

Geeks Mental is a community that publishes articles and tutorials about Web, Android, Data Science, new techniques and Linux security.