Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php WP短代码不返回内容_Php_Wordpress_Wordpress Theming_Themes - Fatal编程技术网

Php WP短代码不返回内容

Php WP短代码不返回内容,php,wordpress,wordpress-theming,themes,Php,Wordpress,Wordpress Theming,Themes,我试图在模板文件中设置一个短代码 我有以下设置: 作为WP页面中的内容: [test]短码![/test] 在functions.php中: function test( $atts, $content = null ) { return '<h1>'.$content.'</h1>'; } add_shortcode("test", "test"); 功能测试($atts,$content=null){ 返回“.$content.”; } 添加_短代码(“

我试图在模板文件中设置一个短代码

我有以下设置:

作为WP页面中的内容:

[test]短码![/test]

在functions.php中:

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

add_shortcode("test", "test"); 
功能测试($atts,$content=null){
返回“.$content.”;
}
添加_短代码(“测试”、“测试”);
在上面页面的template.php中:

<?php echo do_shortcode('[test]'); ?>

但是什么也没有得到回报。如果我在template.php中调用
the_post()
the_content()
,短代码确实会正确显示为h1,但这不是我想要的功能,我需要能够在特定位置插入
[test]
短代码


此外,我似乎可以在函数中添加硬编码的内容并显示出来,所以$content变量很可能没有返回任何数据?是什么原因导致了这种情况?

您应该回显短代码,以使其正常工作:


您应该回显短代码,以使其正常工作:

参考此

您只需简单地回显短代码

<?php echo do_shortcode('[test]'); ?>

请参阅此

您只需简单地回显短代码

<?php echo do_shortcode('[test]'); ?>

您需要回显输出。当使用do_shortcode时,它将在wp includes中运行,其中有一个文件shortcodes.php。当触发函数时,将把内容返回给调用函数。因此,代码如下所示:

 <?php echo do_shortcode('[test]'); ?>
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]'); ?>
或者,如果要在开始标记和结束标记内容之间传递参数,则应执行以下操作:

 <?php echo do_shortcode('[test]'); ?>
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]'); ?>
函数my\u custom\u shortcode\u func($atts,$content=null){
返回“”.$content.“

”; } 添加快捷码('my_custom_shortcode'、'my_custom_shortcode_func');
您需要回显输出。当使用do_shortcode时,它将在wp includes中运行,其中有一个文件shortcodes.php。当触发函数时,将把内容返回给调用函数。因此,代码如下所示:

 <?php echo do_shortcode('[test]'); ?>
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]'); ?>
或者,如果要在开始标记和结束标记内容之间传递参数,则应执行以下操作:

 <?php echo do_shortcode('[test]'); ?>
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]'); ?>
函数my\u custom\u shortcode\u func($atts,$content=null){
返回“”.$content.“

”; } 添加快捷码('my_custom_shortcode'、'my_custom_shortcode_func');
您没有在测试短代码之间指定任何内容,因此您得到的结果字符串为空。你需要写作

<?php $strvar='Load String value here'; echo do_shortcode('[test]'.$strvar.'[/test]'); ?>

以上代码给出的结果为
此处加载字符串值


$strvar=获取内容()

您没有在测试短代码之间指定任何内容,因为您得到的结果字符串为空。你需要写作

<?php $strvar='Load String value here'; echo do_shortcode('[test]'.$strvar.'[/test]'); ?>

以上代码给出的结果为
此处加载字符串值



$strvar=获取内容()

很抱歉,当我回复Dimitar时,这只是我帖子中的一个输入错误,我在回复文件中的do_短码。很抱歉,当我回复Dimitar时,这只是我帖子中的一个输入错误,我在回复文件中的do_短码。很抱歉,我刚刚错过了帖子中的回声部分,现已修复。我在我的文件中回音,但是没有用。对不起,我刚刚错过了我的帖子中的回音部分,现在修复了。我在我的文件中重复了它,虽然没有用。谢谢你的回复,但是正如其他评论中提到的,这只是文章中的一个打字错误,我在我的文件中重复了do_短代码。我不需要参数,但我想在短代码的开始和结束语句中显示内容,如这里所示-[测试]显示此内容[/test]我已更新了我的答案,但在您的问题中,您的回调函数和快捷码名称都相同,因此这可能是一个问题。请再次回答,但这仍然有效。作为记录,在您的示例中,do_shortcode函数中的将自动生成,对吗?所以我的模板文件只有?谢谢你的回复,但是正如其他评论中提到的,这只是文章中的一个打字错误,我在我的文件中重复do_短代码。我不需要参数,但我想在短代码的开始和结束语句中显示内容,如这里所示-[测试]显示此内容[/test]我已更新了我的答案,但在您的问题中,您的回调函数和快捷码名称都相同,因此这可能是一个问题。请再次回答,但这仍然有效。作为记录,在您的示例中,do_shortcode函数中的将自动生成,对吗?所以我的模板文件只有?所以这个代码[测试]短代码![/test]应该可以通过WP界面进行编辑,我希望能够在模板中显示内容(“本例中为shortcode!”)。我明白你的意思,但我不需要在开始和结束快捷码标记之间硬编码内容,我想将该内容称为变量。你可以通过变量添加动态内容。在这一行之前,请将动态内容设置为$strvar。我不太确定该怎么做,因为您可以看出我不知道我在做什么:)。而且可能会有很多不同的动态内容,因此我仍然需要在WP编辑器中使用打开标记/关闭标记语义来区分这一点,短代码似乎是一种方法,可以在muse$strvar=get_the_content()中使用;将模板页面的内容分配给变量。因此,在WP后端,无论您为模板页面描述添加了什么,都会显示出来。我这样做了,但是它最终会显示页面上的所有内容,而不是仅显示短代码打开和关闭标记中的内容。因此,当我在WP编辑器中编辑页面时,我现在有了如下内容:加载字符串值[test]here[/test],并且我只想显示“here”,我如何具体针对它?get_the_content()似乎正在返回此代码[测试]短代码的所有内容![/test]应该可以通过WP界面进行编辑,我希望能够在模板中显示内容(“本例中为shortcode!”)。