Как мне отразить переменную в HTML? - PullRequest
0 голосов
/ 14 июня 2011

Я пытаюсь включить переменную в некоторый существующий код, но мои навыки PHP довольно просты.Я оглянулся и не могу найти ничего, что я мог бы применить в качестве исправления для этого, хотя я уверен, что это довольно просто.код, который я пытаюсь изменить (и думаю, он должен работать):

<?php $yourtext = get_post_meta($post->ID, 'cp_pricing_period', TRUE); 
echo "<p class="ad-price"><?php if(get_post_meta($post->ID, 'price', true)) cp_get_price_legacy($post->ID); else cp_get_price($post->ID); ?> $yourtext</p>"; ?>

Эти изменения, очевидно, неверны, потому что останавливает работу всего файла.Кто-нибудь может пролить свет на то, где я это неправильно понял?

Спасибо

Ответы [ 4 ]

0 голосов
/ 14 июня 2011

Вы должны поставить обратную косую черту перед кавычками в этом утверждении:

echo "<p class="ad-price"><?php if(get_post_meta($post->ID, 'price', true))          cp_get_price_legacy($post->ID); else cp_get_price($post->ID); ?> $yourtext</p>"; ?>
0 голосов
/ 14 июня 2011

Здесь у вас есть некоторая синтаксическая ошибка (кавычки не экранированы и теги неправильно открыты / закрыты).Как примечание, «расширяющиеся» скобки делают ваш код более читабельным и легче обнаруживать ошибки.

<?php
$yourtext = get_post_meta($post->ID, 'cp_pricing_period', TRUE); 

echo "<p class=\"ad-price\">";
if(get_post_meta($post->ID, 'price', true)) 
{
 cp_get_price_legacy($post->ID);
}
else 
{
  cp_get_price($post->ID); 
}

echo $yourtext."</p>"; 
?>
0 голосов
/ 14 июня 2011

Две проблемы.Во-первых, у вас есть несоответствующие кавычки в вашем выражении echo:

echo "<p class="ad-price"><?php if(get_post_meta($post->ID, 'price', true))  etc....
               ^-here   ^--here

PHP увидит эти дополнительные кавычки как завершающие строку, а затем задается вопросом, что это за директива ad-price.Это будет синтаксическая ошибка.

Кроме того, как только вы разберетесь со строкой, экранируя встроенные кавычки:

echo "<p class=\"ad-price\">etc...."

, вы все равно останетесь с этим неработающим.PHP НЕ увидит <?php ... ?> в строке как PHP-код для выполнения.он находится внутри строки, поэтому он будет рассматриваться как часть строки, а код PHP будет отображаться пользователю.В этом случае вам, вероятно, придется написать все это примерно так:

echo '<p class="ad-price">';
if(get_post_meta($post->ID, 'price', true)) {
     echo cp_get_price_legacy($post->ID);
} else { 
     echo cp_get_price($post->ID);
}
echo " $yourtext</p>";
0 голосов
/ 14 июня 2011

вы должны избежать двойных кавычек в вашем HTML

echo "<p class=\"ad-price\"><?php if(get_post_meta($post->ID, 'price', true)) cp_get_price_legacy($post->ID); else cp_get_price($post->ID); ?> $yourtext</p>"; ?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...