Output foreach loop used in WordPress wp_customize

I’m trying to dynamically output some settings from theme Customizer. I use this custom controls, Example 3.

How can I output the settings so that the selected options appear as well as in the order in which they were placed in Customizer?

So far I’ve tried without success:

    $box = get_theme_mod( 'sample_pill_checkbox3' ) ;
 
    switch ( $box ) {

                case 'author':
                echo 'Author';
                break;

                case 'date':
                echo 'Date' ;
                break;
}

Basically, if Author and Date is selected and Date is placed first, so I would need to appear in the frontend, Date first then Author.

Thank you!

Answers:

Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.

Method 1

The code you have in question (switch ( $box )) won’t work because the value of the $box variable is in the form of <value>,<value>,<value>,..., i.e. comma-separated list of values (like the default ones hereauthor,categories,comments), so in order to get access to each value in that list, you’d want to parse the values into an array, e.g. using the native explode() function in PHP, just like how the theme author did it.

Then after that, just loop through the array and run the switch call for each item in the array. (Note that the items are already in the same order they were placed via the Customizer)

Working Example

$list = explode( ',', $box );

foreach ( $list as $value ) {
    switch ( $value ) {
        case 'author':
            echo 'Author';
            break;

        case 'date':
            echo 'Date';
            break;

        // ... your code.
    }
}

PS: Just a gentle reminder — if you need a generic PHP help like this again, you should ask on Stack Overflow.. =)


All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x