我正在尝试在模板文件中设置一个简码。
我有以下设置:
作为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();
评论前必须登录!
注册