将 PHP 变量传递给简码
Pass PHP Variable into a shortcode
我正在尝试做一些看起来很简单但我想不通的事情。
在我的类别模板中,我有这个简码:
<?php echo do_shortcode( '[jobs categories="manufacturing"]' ); ?>
我也有这个来显示类别的标题:
<?php single_cat_title(); ?>
我想将它们放在一起,这样我就可以将类别传递到短代码中,以便它获取正确的工作类别列表。所以我创建了这个:
<?php $category = single_cat_title(); ?>
<?php echo do_shortcode('[jobs categories=' . $category . ']'); ?>
但它似乎无法正常工作 - 我做错了什么吗?这可能吗?
非常感谢!!
如果您查看 single_cat_title()
函数的文档,您会发现它可以 display
或 return
值,并且它接受两个参数 $prefix
和 $display
,默认值分别为 ''
和 true
。
这意味着,仅使用 single_cat_title()
;将打印 Category Title
到文档。
如果你想把它作为一个变量使用(不打印到文档),你需要将第二个参数设置为false
:
$category = single_cat_title( '', false );
这将为您定义 $category
变量,无需打印任何内容,然后您可以将其传递给您的短代码(另请注意,通常您需要在短代码中将您的属性值括起来):
echo do_shortcode( '[jobs categories="' . $category . '"]' );
你也可以让它更简洁一点:
<?php
$category = single_cat_title( '', false );
echo do_shortcode( "[jobs categories='$category']" );
?>
我正在尝试做一些看起来很简单但我想不通的事情。
在我的类别模板中,我有这个简码:
<?php echo do_shortcode( '[jobs categories="manufacturing"]' ); ?>
我也有这个来显示类别的标题:
<?php single_cat_title(); ?>
我想将它们放在一起,这样我就可以将类别传递到短代码中,以便它获取正确的工作类别列表。所以我创建了这个:
<?php $category = single_cat_title(); ?>
<?php echo do_shortcode('[jobs categories=' . $category . ']'); ?>
但它似乎无法正常工作 - 我做错了什么吗?这可能吗?
非常感谢!!
如果您查看 single_cat_title()
函数的文档,您会发现它可以 display
或 return
值,并且它接受两个参数 $prefix
和 $display
,默认值分别为 ''
和 true
。
这意味着,仅使用 single_cat_title()
;将打印 Category Title
到文档。
如果你想把它作为一个变量使用(不打印到文档),你需要将第二个参数设置为false
:
$category = single_cat_title( '', false );
这将为您定义 $category
变量,无需打印任何内容,然后您可以将其传递给您的短代码(另请注意,通常您需要在短代码中将您的属性值括起来):
echo do_shortcode( '[jobs categories="' . $category . '"]' );
你也可以让它更简洁一点:
<?php
$category = single_cat_title( '', false );
echo do_shortcode( "[jobs categories='$category']" );
?>