回声中的PHP变量?

时间:2014-12-19 10:22:52

标签: php wordpress

我的WordPress网站需要在每个页面上都有不同的RSS Feed。在短期内,我需要找到一种方法来输出类别=“2”的RSS源(稍后将成为不同页面中的数字)。我虽然对PHP比较陌生。

有没有办法让一个变量在回声中回显?

我试过了:

<?php
$category = '2';
echo do_shortcode('[rssfeed cat="$category"]');
?>

<?php
$category = '2';
echo do_shortcode('[rssfeed cat='echo "$category"']');
?>

......但显然他们不行。任何人都可以提出解决方案吗?感谢

4 个答案:

答案 0 :(得分:4)

您可以像这样连接字符串:

$category = '2';
echo do_shortcode("[rssfeed cat='" . $category . "']");

答案 1 :(得分:2)

你可以调整你的第一次尝试,但交换&#34;和&#39; around - 如果使用双引号http://php.net/manual/en/language.types.string.php#language.types.string.parsing

,将解析变量
<?php
$category = '2';
echo do_shortcode("[rssfeed cat='$category']");
?>

答案 2 :(得分:1)

变量插值only happens between double quotes。但是短代码可以使用单引号或双引号来表示它们的属性,所以如果你反过来引用引号,它应该可以正常工作:

<?php
$category = '2';
echo do_shortcode("[rssfeed cat='$category']");
?>

PHP字符串现在有双引号,因此$category将被内插到其值,并且该属性具有单引号,这仍然可以正常工作(“Shortcode macros may use single or double quotes for attribute values”),并且不会终止包含PHP字符串。

答案 3 :(得分:-1)

Rizier123上面的答案很有用:

<?php 
$category = '2';
echo do_shortcode("[rssfeed cat='" . $category . "']");
?>

我实际上需要使用_field(类别)从每个WordPress页面通过高级自定义字段提取值。我试图做的时候:

<?php
$category = the_field(category);
echo do_shortcode("[rssfeed cat='" . $category . "']");
?> 

它没有用 - 即使

echo $category;

产生了正确的价值。很多建议的变化也没有用 - 可能这是Wordpress的一个问题。我想我需要以某种方式将变量的打印值传递给另一个变量,以使其起作用。对于任何试图做我正在做的事情的人来说,我发现有效的解决方案是:

<?php
function abc(){
print the_field(category);
}
ob_start();
abc();
$category = ob_get_clean();
 echo do_shortcode("[rssfeed cat='" . $category . "']");
?>
相关问题