将PHP变量传递到短代码中

将PHP变量传递到短代码中,php,wordpress,variables,shortcode,Php,Wordpress,Variables,Shortcode,我想做一些看起来很简单的事情,但我想不出来 在我的类别模板中,我有以下短代码: <?php echo do_shortcode( '[jobs categories="manufacturing"]' ); ?> 如果您查看函数的文档,您将看到它可以显示或返回值,并且它接受两个参数$prefix和$display,默认值分别为'和true 这意味着,只需使用single_cat_title();将在文档中打印类别标题 如果要将其用作变量(而不将其打印到文档中),则需要将第二个参数设

我想做一些看起来很简单的事情,但我想不出来

在我的类别模板中,我有以下短代码:

<?php echo do_shortcode( '[jobs categories="manufacturing"]' ); ?>

如果您查看函数的文档,您将看到它可以
显示
返回
值,并且它接受两个参数
$prefix
$display
,默认值分别为
'
true

这意味着,只需使用
single_cat_title()
;将在文档中打印
类别标题

如果要将其用作变量(而不将其打印到文档中),则需要将第二个参数设置为
false

$category = single_cat_title( '', false );
这将为您定义
$category
变量,而无需打印任何内容,然后您可以将其传递给您的短代码(还请注意,通常需要在短代码中的属性值周围加引号):

您还可以使其更加简洁:

<?php
    $category = single_cat_title( '', false );
    echo do_shortcode( "[jobs categories='$category']" );
?>

如果您查看函数的文档,您将看到它可以
显示
返回
值,并且它接受两个参数
$prefix
$display
,默认值分别为
'
true

这意味着,只需使用
single_cat_title()
;将在文档中打印
类别标题

如果要将其用作变量(而不将其打印到文档中),则需要将第二个参数设置为
false

$category = single_cat_title( '', false );
这将为您定义
$category
变量,而无需打印任何内容,然后您可以将其传递给您的短代码(还请注意,通常需要在短代码中的属性值周围加引号):

您还可以使其更加简洁:

<?php
    $category = single_cat_title( '', false );
    echo do_shortcode( "[jobs categories='$category']" );
?>

为什么它“似乎工作不正常”?它做错了什么?您的第一个示例
single\u cat\u title()
并不意味着它返回任何内容,但您的第二个示例假定它返回任何内容。是吗?返回页面顶部当前类别的名称…该行代码未捕获返回值。这意味着函数将打印到输出,但不返回任何内容。你有没有办法在代码中获取值,而不仅仅是将其打印到输出中?对不起,大卫,我不完全清楚你的意思-我是一个初学者,所以我现在对术语不太了解。。。在这种情况下,它输出标题,快捷码输出显示制造作业的作业板-两个代码机器人在页面上分别工作,因此它们都正确地输出内容?输出和返回之间有区别。
single\u cat\u title()
函数似乎会向浏览器输出数据,但函数本身不会向调用该函数的代码返回任何内容(或至少不会返回您期望的内容)。在这里,一些PHP入门教程将对您有所帮助。注重建筑结构和使用功能。您需要在代码中获取值,而不仅仅是在页面上。为什么它“似乎工作不正常”?它做错了什么?您的第一个示例
single\u cat\u title()
并不意味着它返回任何内容,但您的第二个示例假定它返回任何内容。是吗?返回页面顶部当前类别的名称…该行代码未捕获返回值。这意味着函数将打印到输出,但不返回任何内容。你有没有办法在代码中获取值,而不仅仅是将其打印到输出中?对不起,大卫,我不完全清楚你的意思-我是一个初学者,所以我现在对术语不太了解。。。在这种情况下,它输出标题,快捷码输出显示制造作业的作业板-两个代码机器人在页面上分别工作,因此它们都正确地输出内容?输出和返回之间有区别。
single\u cat\u title()
函数似乎会向浏览器输出数据,但函数本身不会向调用该函数的代码返回任何内容(或至少不会返回您期望的内容)。在这里,一些PHP入门教程将对您有所帮助。注重建筑结构和使用功能。您需要在代码中获得值,而不仅仅是在页面上。啊,好的-谢谢您以一种易于理解的方式解释,这真的很有帮助:)这将解释为什么它会打印到短代码上方而不是短代码中的文档!!我还想知道是否可以将其包含在一组PHP标记中!这也意味着我现在可以用一个页面模板而不是每个分类法的模板来实现我所尝试的!再次感谢:)啊,好的-谢谢你用一种简单易懂的方式解释事情,这真的很有帮助:)这将解释为什么它打印到文档的短代码上方而不是短代码中!!我还想知道是否可以将其包含在一组PHP标记中!这也意味着我现在可以用一个页面模板而不是每个分类法的模板来实现我所尝试的!再次感谢:)
<?php
    $category = single_cat_title( '', false );
    echo do_shortcode( "[jobs categories='$category']" );
?>