Question

I have the following problem: I want to add print_f in an array in wordpress.

printf( __('Option to share on %s', 'themename'), 'name')

However, the following code does not work properly for me. Instead of the actual result, it throws out "30" .

$wp_customize->add_control(
                        new WP_Customize_Control(
                                $wp_customize,
                                'display-name'
                                array(
                                        'label' => printf( __('Option to share on %s', 'theme-name'), 'name'),
                                        'section' => 'share',
                                        'settings' => 'display-name',
                                        'type' => 'checkbox',
                                        'description' => 'Just a Description.'
                                        'active_callback' => 'share_callback',
                                )
                        )
                );

Hope someone can help me...

Was it helpful?

Solution

As documented (always read the docs), printf() returns:

...the length of the outputted string.

That's why you're getting 30.

If you're adding a value to an array or a string you need to use a function that returns a value. Not one that prints. printf() prints the value and returns the length of the printed value. To return a formatted string, you need to use sprintf():

'label' => sprintf( __('Option to share on %s', 'theme-name'), 'name'),

See here for more on the difference between returning and printing/echoing.

Licensed under: CC-BY-SA with attribution
Not affiliated with wordpress.stackexchange
scroll top