我正在尝试做一些看似非常简单的事情,但我无法理解。
在我的类别模板中,我有这个短代码:
<?php echo do_shortcode( '[jobs categories="manufacturing"]' ); ?>
我也有这个来显示该类别的标题:
<?php single_cat_title(); ?>
我想将它们放在一起,这样我就可以将类别传递给短代码,以便获取正确的工作类别列表。所以我创造了这个:
<?php $category = single_cat_title(); ?>
<?php echo do_shortcode('[jobs categories=' . $category . ']'); ?>
但似乎没有正常工作 - 我做错了吗?这甚至可能吗?
非常感谢!!
答案 0 :(得分:2)
如果您查看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']" );
?>