2014-12-19 59 views
0

我的WordPress网站需要在每个页面上有不同的RSS源。在短期内,我需要找到一种方法来输出category =“2”的RSS feed(稍后将成为来自不同页面的数字)。不过,我对PHP比较陌生。回声中的PHP变量?

有没有办法让变量echo'd在回声中?

我已经试过:

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

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

...但显然他们没有工作。任何人都可以提出解决办法吗?由于

+0

尝试没有'echo' – 2014-12-19 10:23:40

+0

@Rohil_PHPBeginner ...'do_shortcode()'必须'echo'ed – rnevius 2014-12-19 11:26:03

+0

我谈论其他'回声' – 2014-12-19 11:26:43

回答

4

可以正好连接你的字符串是这样的:

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

总是最好打破回声函数以包含变量这种方式。 +1 – Lee 2014-12-19 10:34:56

+0

@李:你是什么意思“突破回声功能”? – 2014-12-19 10:37:52

+0

@LightnessRacesinOrbit和上面的例子一样,而不是直接在回声字符串中包含变量,如'echo“这是我的字符串$ variable”;' – Lee 2014-12-19 10:39:11

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字符串。

2

你可以调整你的第一次尝试,但交换“和”绕 - 变量也会在使用双引号http://php.net/manual/en/language.types.string.php#language.types.string.parsing

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

这是@ MattGibson的答案的直接剽窃...... – rnevius 2014-12-19 10:36:15

+0

@rnevius是啊直到我发布 – Tim 2014-12-19 10:38:10

+0

@LightnessRacesinOrbit之后,我才看到......怎么样? – rnevius 2014-12-19 10:39:50

-1

Rizier123的回答上面巨大的工作负担:

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

其实我需要通过高级自定义字段使用the_field(category)从每个WordPress页面获取一个值。当我试图做:

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

它没有工作 - 即使

echo $category; 

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