我正在尝试在模板文件中设置一个简码。
我有以下设置:
【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();
推荐阅读
- WP简单主题,改变图像行为
- wp_register_script不加载脚本
- 基于语言的wp突出主题社交媒体
- WP查询以获取具有特定term_taxonomy的帖子
- 二次上岗,充实生话
- 不知不觉我在玩具厂工作五年了
- 成家之后,我是三十而立的年纪
- 我要成为老妈的依靠
- 这一年不容易,深深的感谢自己