Мне нужно повторить много 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 } ?>'; ?>
Как мне это сделать?
Вам не нужно выводить теги 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 для вывода строк строки с переменными. Синтаксис …
$string = <<<HEREDOC string stuff here HEREDOC;
Часть «HEREDOC» похожа на цитаты и может быть всем, что вы хотите. Конечный тег должен быть единственным в его строке, т. Е. Без пробелов до или после, и должен заканчиваться двоеточием. Для получения дополнительной информации ознакомьтесь с руководством .
Для этого вы должны удалить все '
charachters» в своей строке или использовать escape-символ. Подобно:
<?php echo '<?php echo \'hello world\'; ?>'; ?>
Внутренний набор одинарных кавычек в вашем коде убивает строку. Всякий раз, когда вы нажимаете одну цитату, она заканчивает строку и продолжает обработку. Вам нужно что-то вроде:
$thisstring = 'this string is long \' in needs escaped single quotes or nothing will run';
Используйте 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>