2016-02-17 6 views
1

Я пытаюсь выяснить, как эхо переменная внутри переменной.Echo переменная внутри переменной

Этот код ниже, очевидно, не работает, потому что я не вторя переменную

$tweet = get_field('tweet_msg'); //this is getting the string inputted by user in the custom field 
$tweet_intent = '<div><a href="https://twitter.com/intent/tweet?text="'.$tweet.'">TEST</a> </div>'; 

но когда я когда-либо делать PHP выдает ошибку говоря неожиданное эхо:

$tweet_intent = '<div style="margin-bottom:15px;"><a href="https://twitter.com/intent/tweet?text="'.echo $tweet.'">TEST</a> </div>'; 

Полный код:

add_filter('the_content', 'prefix_insert_post_ads'); 

function prefix_insert_post_ads($content) { 
    $tweet = get_field('tweet_msg'); 
    $tweet_intent = '<div style="margin-bottom:15px;"><a href="https://twitter.com/intent/tweet?text="'.$tweet.'">TEST</a> </div>'; 

    if (is_single() && ! is_admin()) { 
    return prefix_insert_after_paragraph($tweet_intent, 2, $content); 
    } 

    return $content; 
} 

// Parent Function that makes the magic happen 

function prefix_insert_after_paragraph($insertion, $paragraph_id, $content) { 
    $closing_p = '</p>'; 
    $paragraphs = explode($closing_p, $content); 
    foreach ($paragraphs as $index => $paragraph) { 

    if (trim($paragraph)) {  $paragraphs[$index] .= $closing_p; 
    } 
    if ($paragraph_id == $index + 1) { 
     $paragraphs[$index] .= $insertion; 
    } 
    }  return implode('', $paragraphs); 
} 
+1

[* "Это не дубликат" *] (http://stackoverflow.com/revisions/35465691/1) - О, как так? Здесь очень очевидно. Вы не можете так отгонять эхо. Поместите это, если бы вы объявили переменную. –

+0

вы не можете присвоить переменную 'echo'. просто удалите его – fusion3k

+0

Вы говорите: «Этот код ниже явно не работает» является ** правильным кодом **. Возможно, '$ tweet' пуст или не является строкой – fusion3k

ответ

5

Проблема заключается в синтаксисе <a href>.
Предполагая, что после get_field(), значение $tweet является 'Hello-World', код:

$tweet_intent = '<div style="margin-bottom:15px;"><a href="https://twitter.com/intent/tweet?text="'.$tweet.'">TEST</a> </div>'; 

положить в $tweet_intent эта строка:

(...)<a href="https://twitter.com/intent/tweet?text="Hello-World">TEST</a> </div> 
      └──────────────────────────────────────┘  

Как вы можете видеть, Кавычки от href закрыт до$tweet мощность.

Вы должны изменить свой код таким образом:

$tweet = get_field('tweet_msg'); 
$tweet = rawurlencode($tweet); // only if encoding is not performed by get_field 
$tweet_intent = ' 
    <div style="margin-bottom:15px;"> 
     <a href="https://twitter.com/intent/tweet?text='.$tweet.'">TEST</a> 
    </div>'; 
+0

Спасибо @ fusion3k Я клянусь, котировки всегда получают меня при конкретизации! –

Смежные вопросы