2014-12-19 100 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的問題。我想我需要以某種方式將變量的打印值傳遞給另一個變量,以使其工作。對於任何人試圖做我在做什麼,一個解決方案,我發現工作是: