ACF: невозможно получить заголовок из поля Post объекта Relation в цикле Post - PullRequest
0 голосов
/ 06 декабря 2018

Я пытаюсь настроить пользовательский столбец внутри моих страниц администратора, используя поле ACF.Поле является полем отношений, однако я продолжаю получать ошибки.Мой код внутри functions.php:

function my_product_columns($columns)
{
    $columns = array(
        'cb'        => '<input type="checkbox" />',
        'title'     => 'Name',
        'artist'    => 'Artist',
        'media'     =>  'Media',
    );
    return $columns;
}

function my_product_artist_columns($column)
{
    global $post;
    $post_id = $post->ID;

    if ($column == 'artist') {
                $artist_field = get_field( "product_artist", $post_id);
                echo $artist_field->post_title; //THIS IS THE PROBLEM!
        }
        else {
             echo '';
        }
}

При этом я получаю следующее сообщение об ошибке:

Примечание: при попытке получить свойство 'post_title' необъекта в

Если я сделаю echo $artist_field['post_title'];, я получу:

Неустранимая ошибка: необученная ошибка: невозможно использовать объект типа WP_Post в качестве массива в

Иprint_r($artist_field); дает мне: WP_Post Object

 WP_Post Object (
        [ID] => 778
        [post_author] => 1
        [post_date] => 2018-12-06 09:18:26
        [post_date_gmt] => 2018-12-06 09:18:26
        [post_content] => This is Solomon
        [post_title] => Solomon Northup
        [post_excerpt] => 
        [post_status] => publish
        [comment_status] => closed
        [ping_status] => closed
        [post_password] => 
        [post_name] => solomon-northup
        [to_ping] => 
        [pinged] => 
        [post_modified] => 2018-12-06 09:18:26
        [post_modified_gmt] => 2018-12-06 09:18:26
        [post_content_filtered] => 
        [post_parent] => 0
        [guid] => http://localhost:8888/swart.shop/wp/?post_type=artists&p=778
        [menu_order] => 0
        [post_type] => artists
        [post_mime_type] => 
        [comment_count] => 0
        [filter] => raw
    )

Это потому, что это пост-цикл внутри пост-цикла и как я могу это исправить?

1 Ответ

0 голосов
/ 06 декабря 2018

Я нашел ответ: https://support.advancedcustomfields.com/forums/topic/use-post-object-in-a-loop-of-a-custom-post-type/

тогда мой код:

if ($column == 'artist') {
            $post_object = get_field( "product_artist"); if( $post_object ) {   
            $post = $post_object; setup_postdata( $post );  //Call the post object Inside and work with
            the_title();
            $post = $post_id; setup_postdata( $post ); ////Call back the "parent" post datas
            } else {
                echo '';
            }
    }
    else {
         echo '';
    }
...