WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have a simple shortcode like this....

function myshortcode( $attributes, $content = null ) {
    extract( shortcode_atts( array(
        'class' => ''
    ), $attributes ) );
           return 'This is the content : ' . $content . ';
add_shortcode('my_shortcode', 'myshortcode');

This works great and if I use the following in a post...

[my_shortcode]This is the content that I want to display[/my_shortcode]

But what I want to do now is vary the font size of the content for example...

[my_shortcode]This is the [25px]content[/25px] that I want to display[/my_shortcode]

I want this to change the word 'content' to 25px font size.

Anyone know a way, maybe str_replace?

share|improve this question

Are you trying to put a shortcode within a shortcode? Perhaps this is an easier solution to control your front-end output?




'<p>This is the content: <span class="my_pixel_size">' . $content . '</span></p>';
share|improve this answer

From my understanding of shortcodes, you would need to create a shortcode for each pixel. It would be much easier to define a single shortcode, then use attributes to define a font-size.

function font_callback( $attributes, $content = null ) {
    extract( shortcode_atts( array(
        'size'  => '12px'
    ), $attributes ) );

    return '<span style="font-size:' . $size . '">' . $content . '</span>';
add_shortcode( 'font', 'font_callback' );

Then you can say something like:

This is the [font size="18px"]content[/font] that I want to display

This of course could be expanded upon to include font-family, classes, and an id.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.