Многострочная строка PHP с PHP
Мне нужно Эхо много PHP и HTML.
Я уже пробовал очевидное, но это не работает:
<?php echo '
<?php if ( has_post_thumbnail() ) { ?>
<div class="gridly-image"><a href="<?php the_permalink() ?>"><?php the_post_thumbnail('summary-image', array('class' => 'overlay', 'title'=> the_title('Read Article ',' now',false) ));?></a>
</div>
<?php } ?>
<div class="date">
<span class="day">
<?php the_time('d') ?></span>
<div class="holder">
<span class="month">
<?php the_time('M') ?></span>
<span class="year">
<?php the_time('Y') ?></span>
</div>
</div>
<?php } ?>';
?>
Как я могу это сделать?
7 ответов
вам не нужно выводить php
теги:
<?php
if ( has_post_thumbnail() )
{
echo '<div class="gridly-image"><a href="'. the_permalink() .'">'. the_post_thumbnail('summary-image', array('class' => 'overlay', 'title'=> the_title('Read Article ',' now',false) )) .'</a></div>';
}
echo '<div class="date">
<span class="day">'. the_time('d') .'</span>
<div class="holder">
<span class="month">'. the_time('M') .'</span>
<span class="year">'. the_time('Y') .'</span>
</div>
</div>';
?>
вы не можете запустить PHP-код в такой строке. Это просто не работает. Также, Когда вы" вне " кода PHP (?>
), любой текст вне блоков PHP считается выходным в любом случае, поэтому нет необходимости в echo
заявление.
Если вам нужно сделать многострочный вывод из с куском PHP-кода, рассмотрите возможность использования помощи heredoc:
<?php
$var = 'Howdy';
echo <<<EOL
This is output
And this is a new line
blah blah blah and this following $var will actually say Howdy as well
and now the output ends
EOL;
используйте Heredocs для вывода строк muli-line, содержащих переменные. Синтаксис...
$string = <<<HEREDOC
string stuff here
HEREDOC;
часть "HEREDOC" похожа на кавычки и может быть чем угодно. Тег end должен быть единственным в строке, то есть без пробелов до или после, и должен заканчиваться двоеточием. Для получения дополнительной информации Проверьте инструкцию.
внутренний набор одинарных кавычек в вашем коде убивает строку. Всякий раз, когда вы нажимаете одну кавычку, она заканчивает строку и продолжает обработку. Вы захотите что-то вроде:
$thisstring = 'this string is long \' in needs escaped single quotes or nothing will run';
чтобы сделать это, вы должны удалить все '
charachters в строке или использовать escape-символ. Например:
<?php
echo '<?php
echo \'hello world\';
?>';
?>
использовать show_source();
функция PHP. Проверьте более подробную информацию в show_source. Думаю, это лучший метод.
другой вариант - использовать if
с двоеточием, а endif
вместо скобки:
<?php if ( has_post_thumbnail() ): ?>
<div class="gridly-image">
<a href="<?php the_permalink(); ?>">
<?php the_post_thumbnail('summary-image', array('class' => 'overlay', 'title'=> the_title('Read Article ',' now',false) )); ?>
</a>
</div>
<?php endif; ?>
<div class="date">
<span class="day"><?php the_time('d'); ?></span>
<div class="holder">
<span class="month"><?php the_time('M'); ?></span>
<span class="year"><?php the_time('Y'); ?></span>
</div>
</div>