2016-09-11 27 views
-1

在使用高級自定義字段 WordPress的我用get_field('my-custom-field');如何組合字符串以用作php var?

我得到這個代碼,我想在一個函數來存儲調用一些增值經銷商:

<img src="<?php the_sub_field('image-1'); ?>"> 
<?php $target_post = get_sub_field('target-1'); ?> 
<?php echo get_the_title($target_post); ?> 

所有我需要內更換我的功能是-1-2-3等。我該怎麼做?

我曾經嘗試這樣做,不工作:

function imageBlock($fieldID = '1') { 
    <img src="<?php the_sub_field('image-$fieldID'); ?>"> 
    <?php $target_post = get_sub_field('target-$fieldID'); ?> 
    <?php echo get_the_title($target_post); ?> 
} 

如何傳遞的fieldIDget_field('my-custom-field-1');功能?

+0

只有一個問題:爲什麼要使用sotern'',反其道而行之。只是'回聲「」;'然後取出PHP標籤的其餘部分,目前你的函數不會工作 – JOUM

+0

@JOUM不,他有權進出PHP解析。如果沒有邏輯來決定HTML應該是什麼,你不應該回應HTML。此外,由於單引號字符串作爲函數調用的參數,您的解決方案仍然不起作用。 – worldofjr

+0

@worldofjr該功能不會工作!見第一和第二行。並且不需要在3線和4 php的標籤,所以沒得到你:) – JOUM

回答

1

您試圖將變量傳遞給單引號字符串,該字符串將文字$作爲字符串的一部分,而不是變量的開頭。有兩種方法可以解決這個問題。

要麼;

get_sub_field("target-$fieldID"); // double quotes 

get_sub_field('target-' . $fieldID); // concat 

所以你的函數會;

function imageBlock($fieldID = '1') { 
    ?> 
    <img src="<?php the_sub_field("image-$fieldID"); ?>"> 
    <?php $target_post = get_sub_field("target-$fieldID"); ?> 
    <?php 
    echo get_the_title($target_post); 
} 

話雖如此,我會打出這樣你剛剛返回HTML像你調用其他函數字符串的邏輯;

function imageBlock($fieldID = '1') { 
    $sub_field = the_sub_field("image-$fieldID"); 
    $target_post = get_sub_field("target-$fieldID"); 
    $the_title = get_the_title($target_post); 

    return "<img src=\"$sub_field\"> $the_title"; 
} 

你可以回顯結果,即;

echo imageBlock(2); 
+0

_other_問題呢? ;) – JOUM

+0

非常感謝@worldofjr。我不知道PHP中的單引號和雙引號是有區別的! –

+0

Hi @MarianRick如果這個或任何答案已經解決了您的問題,請點擊複選標記,考慮[接受它](http://meta.stackexchange.com/q/5234/179419)。這向更廣泛的社區表明,您已經找到了解決方案,併爲答覆者和您自己提供了一些聲譽。沒有義務這樣做。 – worldofjr