plugins - Return function results within shortcode

admin2025-06-06  8

I'm trying to write reusable functions in a plugin and call the functions within a shortcode. But, I can't get any output. Why don't either of these methods work?

    <?php

    function say_sup(){
    return 'sup';
    }

    add_shortcode( 'sup_shortcode', 'register_sup_shortcode' );
    function register_sup_shortcode( $atts, $content = null) {

    $sup = say_sup();
    return $sup;

    }

    ?>



    <?php

    function say_sup(){
        $sup = 'sup';
        echo $sup;
        var_dump( $sup );
    }

    add_action( 'say_sup_now', 'say_sup', 1 );

    add_shortcode( 'sup_shortcode', 'register_sup_shortcode' );
    function register_sup_shortcode( $atts, $content = null) {

    do_action( 'say_sup_now' );

    }

    ?>

I'm trying to write reusable functions in a plugin and call the functions within a shortcode. But, I can't get any output. Why don't either of these methods work?

    <?php

    function say_sup(){
    return 'sup';
    }

    add_shortcode( 'sup_shortcode', 'register_sup_shortcode' );
    function register_sup_shortcode( $atts, $content = null) {

    $sup = say_sup();
    return $sup;

    }

    ?>



    <?php

    function say_sup(){
        $sup = 'sup';
        echo $sup;
        var_dump( $sup );
    }

    add_action( 'say_sup_now', 'say_sup', 1 );

    add_shortcode( 'sup_shortcode', 'register_sup_shortcode' );
    function register_sup_shortcode( $atts, $content = null) {

    do_action( 'say_sup_now' );

    }

    ?>
Share Improve this question edited Nov 4, 2018 at 11:55 James Valeii asked Nov 1, 2018 at 14:50 James ValeiiJames Valeii 1185 bronze badges 3
  • Your first example is fine. Is this the actual code you’re having trouble with? – Jacob Peattie Commented Nov 1, 2018 at 15:19
  • I guess you forgot to write echo before do_shortcode(). It should be echo do_shortcode('[your-shorcode]') ; – KAGG Design Commented Nov 1, 2018 at 17:16
  • @KAGGDesign They haven't written do_shortcode() anywhere? – Jacob Peattie Commented Nov 2, 2018 at 1:09
Add a comment  | 

1 Answer 1

Reset to default 0

This is correct (I just had file versioning issues):

        <?php


        function say_sup(){
        return 'sup';
        }

        add_shortcode( 'sup_shortcode', 'register_sup_shortcode' );
        function register_sup_shortcode( $atts, $content = null) {


        $sup = say_sup();
        return $sup;


        }

        ?>

This is not correct - and there would be little purpose in trying to make something like this work, if the above worked:

        <?php


        function say_sup(){
            $sup = 'sup';
            echo $sup;
            var_dump( $sup );
        }


        add_action( 'say_sup_now', 'say_sup', 1 );


        add_shortcode( 'sup_shortcode', 'register_sup_shortcode' );
        function register_sup_shortcode( $atts, $content = null) {


        do_action( 'say_sup_now' );


        }

        ?>
转载请注明原文地址:http://conceptsofalgorithm.com/Algorithm/1749207241a317260.html

最新回复(0)