Custom Content Type Manager
[resolved] Multi-select output to array doesn't make array (3 posts)

  1. GreyhoundXX
    Posted 4 years ago #

    I have a custom field set up as a multi-select with checkbox and the output filter is "Array (to_array)". However, when I use get_post_meta I end up with a string. For example, I have people check off days of the week.

    This is how I get the field in my loop:

    `$days = get_post_meta($post->ID, 'days', 0);

    When I print it out, I get this, which is an array of 1:

    Array ( [0] => ["Monday","Tuesday","Wednesday","Thursday","Friday"] )

    Is there any way to fix this without doing a bunch of str_replace and explode?


  2. fireproofsocks
    Plugin Contributor

    Posted 4 years ago #

    If you use get_post_meta, then you are bypassing any of CCTM's filters -- you're missing out on half the goods. CCTM includes 2 functions to help avoid all that trouble: get_custom_field() and print_custom_field() : see http://code.google.com/p/wordpress-custom-content-type-manager/wiki/get_custom_field

    So in your template you might do something like this:

    $days = get_custom_field('days:to_array');
    print implode(', ', $days);

    Or perhaps even simpler, use the formatted_list output filter: http://code.google.com/p/wordpress-custom-content-type-manager/wiki/formatted_list_OutputFilter

    print_custom_field('days:formatted_list', ', ');

    There are lots of docs on the project's wiki, and there are sample templates generated for you when you view any of your defined content types. Have a look around -- I really tried my best to solve as many of these mundane problems for you.

  3. GreyhoundXX
    Posted 4 years ago #

    Thank for your response - that makes sense. Usually I have to hack my way around things so I wasn't expecting you to include an easier way of getting the array.

Topic Closed

This topic has been closed to new replies.

About this Plugin

About this Topic