投稿タグをカスタムフィールドの値で上書きしたい


投稿タグを、特定の複数のカスタムフィールドの値に変更したいと考えています。  
一つのカスタムフィールドだけをタグとして反映させることはできましたが、複数のカスタムフィールドの値をそれぞれタグとして反映させることができません。

これまで試したコードはこちらです

[code]

    <?php
    global $post;
    $post_id = $post->ID; 
    $tags[] = get_post_meta($post_id, 'aaaaa', $single);
    $tags[] = get_post_meta($post_id, 'bbbbb', $single);
    $tags[] = get_post_meta($post_id, 'ccccc', $single);
    $tags = array_unique( array_filter( $tags ) ); // here, adding array_filter to remove empty get_post_meta results
    wp_set_post_tags( $post_id, $tags, false );
    ?>
    
[/code]

上記のコードの場合、一番上に記載したカスタムキーだけがタグに反映されました。

* * *
[code]

    global $post;
    $post_id = $post->ID; 
    $tags[] = get_post_meta($post_id, 'aaaaa', $single);
    $tags[] = get_post_meta($post_id, 'bbbbb', $single);
    $tags[] = get_post_meta($post_id, 'ccccc', $single);
    $tags = array_unique( array_filter( $tags ) ); // here, adding array_filter to remove empty get_post_meta results
    foreach($tags as $tag){
        wp_set_post_tags( $post_id, $tag, false );
    }
    
[/code]

こちらのコードも一番上のカスタムキーだけがタグとして反映されました。

* * *
[code]

    <?php
    global $post;
    $post_id = $post->ID;
    
    $tags = get_post_meta($post_id, 'aaaaa', $single);
    if (!empty($tag) ) { wp_add_post_tags( $post_id, $$tag ); }
    
    $tags = get_post_meta($post_id, 'bbbbb', $single);
    if (!empty($tag) ) { wp_add_post_tags( $post_id, $$tag ); }
    
    $tags = get_post_meta($post_id, 'ccccc', $single);
    if (!empty($tag) ) { wp_add_post_tags( $post_id, $$tag ); }
    
    wp_set_post_tags( $post_id, $tags, false );   
    
    ?>
    
[/code]

上記のコードでは、カスタムフィールドの値はいずれもタグとして反映されませんでした。




文字列で返ってきてないのが原因だったようで、第三引数trueであっさりうまくいきました！

