WP短代码不返回内容

我正在尝试在模板文件中设置一个简码。
我有以下设置:
【WP短代码不返回内容】作为WP页面中的内容:
[测试]简码![/测试]
在functions.php中:

function test( $atts, $content = null ) { return '< h1> '.$content.'< /h1> '; }add_shortcode("test", "test");

在以上页面的template.php中:
< ?php echo do_shortcode('[test]'); ?>

什么都没有退还。如果我在template.php中调用the_post()和the_content(), 则短代码确实可以正确显示为h1, 但这不是我想要的功能, 我需要能够在特定位置插入[test]短代码。
另外, 似乎我可以在函数中添加硬编码内容并显示它, 因此$ content变量很可能不返回任何数据?是什么原因造成的?
#1你应该回显简码以使其起作用:
< ?php echo do_shortcode(‘ [test]’ ); ?>
#2请参阅此https://developer.wordpress.org/reference/functions/do_shortcode/
你只需简单地回显简码
< ?php echo do_shortcode('[test]'); ?>

#3你需要回显输出。使用do_shortcode时, 它将在wp-includes中运行, 其中有一个文件shortcodes.php。触发函数时, 会将内容返回给调用函数。因此代码如下所示:
< ?php echo do_shortcode('[test]'); ?>

第二件事, 你的函数参数具有默认的null参数, 因此, 如果你不将任何内容传递给shortcode, 则它将不会显示任何内容。
你需要做这样的事情
< ?php echo do_shortcode('[test param="content_to_be_show"]'); ?>

或者, 如果你想在开始标记和结束标记的内容之间作为参数传递, 则应执行以下操作:
function my_custom_shortcode_func( $atts, $content = null ) { return '< p> ' . $content . '< /p> '; }add_shortcode( 'my_custom_shortcode', 'my_custom_shortcode_func' ); < ?php echo do_shortcode('[my_custom_shortcode]< p> Hello this is from custom shortcode contents< /p> [/my_custom_shortcode]'); ?>

#4你没有在测试简码之间指定任何内容, 因为它会得到空的结果字符串。你需要写
< ?php $strvar='Load String value here'; echo do_shortcode('[test]'.$strvar.'[/test]'); ?>

上面的代码将结果作为< h1> 在此处加载字符串值< / h1>
$ strvar = get_the_content();

    推荐阅读