0

Are there any dependencies on which shortcode depends?

[news_weber][/news_weber] → Didn't work, but when used with do_shortcode method it worked.

I installed Ultimate shortcode plugin to check whether that works or not. all the shortcodes of that plugin worked, strangely as soon as that plugin was installed my custom shortcodes also worked and as soon as uninstalled my custom shortcodes stopped working. what is the connection?

are there any dependencies that are not included in my theme and they get included as soon as some third-party plugin is installed?

Update →

  1. The shortcode works if used in the post(edit mode) editor, and
  2. It also works with do_shortcode method, but
  3. It doesn't work when we use the default text widget and place our shortcode there. However, it works here also If we install the plugin as I told you above.

enter image description here

what is the issue?

Update 2: Code →

function burner() {
        ob_start();
        $random=rand(1,10000);
        ?>
        //some code
        <?php
        return ob_get_clean();
}
add_shortcode('news_burner', 'burner');

Update #3

Shortcodes are plugin territory so I transferred them to a plugin, but the same problem they do not work, but when I install a 3rd party plugin as stated above they do work.

6
  • 1
    Where's the news_weber shortcode coming from? There's no code in your question to debug
    – Tom J Nowell
    Commented Oct 6, 2017 at 16:49
  • Sir, i have updated the question.
    – WordCent
    Commented Oct 7, 2017 at 1:43
  • I have updated the code of one shortcode.
    – WordCent
    Commented Oct 7, 2017 at 1:51
  • news_weber shortcode is in shortcode.php and that file is included in functions.php Additionally, the shortcode works in the post editors.
    – WordCent
    Commented Oct 7, 2017 at 2:03
  • Have you tried just using [news_weber]? Without the closing shortcode?
    – Tom J Nowell
    Commented Oct 7, 2017 at 2:03

2 Answers 2

1

Problem 1

It doesn't work because you're using new_weber but you're registering news_burner, and they aren't the same

So instead use:

[news_burner]

You only need a closing shortcode if it's containing content which that plugin does not.

Problem 2

Shortcodes don't work in text widgets out of the box, you can add that functionality via a plugin though, see this question/answer:

Shortcode in Text Widget not working

This is why it works with do_shortcode but not in widgets. It'll also work in post content

4
  • [new_weber ] for Aweber; [news_burner] for Feedburner. I have total 4: aweber, mailchimp, Feedburner, feedblitz
    – WordCent
    Commented Oct 7, 2017 at 2:08
  • 1
    Great, see the problem 2 section
    – Tom J Nowell
    Commented Oct 7, 2017 at 2:09
  • sir, I didnt get this completely → "you can add that functionality via a plugin though" means my own custom text widget?
    – WordCent
    Commented Oct 7, 2017 at 2:11
  • 1
    sir mystery solved → add_filter( 'widget_text', 'do_shortcode', 11 ); I added this and it worked.
    – WordCent
    Commented Oct 7, 2017 at 2:20
0

Based on your question and my understanding of your question, you have to make sure that your shortcode is called from your functions files.

First, you need to write <?php echo do_shortcode("[news_weber]"); ?> in order to make it work by PHP. Based on your question, I think you do not need the closing bracket since shortcodes can be self-closed.

Documentation : https://developer.wordpress.org/reference/functions/do_shortcode/

But even if you typed this correctly, you still need to give the access to this shortcode in your function file.

You could create a custom file named shortcodes.php and call it from your functions.php file.

if ( ! function_exists( 'my_theme_setup' ) ) :

   function my_theme_setup() {

   // Custom shortcodes
   require_once( "inc/shortcodes.php" );
}

endif;

add_action( "after_setup_theme", "my_theme_setup" );

And in your shortcode.php file you can call your function.

function news_weber_func( $atts ) {
    // Your custom code
}
add_shortcode( 'news_weber', 'news_weber_func' );

Official documentation : https://codex.wordpress.org/Function_Reference/add_shortcode

I hope it will help you.

2
  • sir, I have updated the question. Please check.
    – WordCent
    Commented Oct 7, 2017 at 1:43
  • If I use shortcode w/o closing bracket then even after that plugin is installed it doesn't work.
    – WordCent
    Commented Oct 7, 2017 at 1:47

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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