个性化阅读
专注于IT技术分析

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();

赞(0)
未经允许不得转载:srcmini » WP短代码不返回内容

评论 抢沙发

评论前必须登录!