Почему не работает? Как правильно вставить php в html?

Имеется код:

$rt = "<li class='attachment-".$attach_id."'>"
            . rcl_button_fast_delete_post($attach_id)
            . "<label>"
            . rcl_get_insert_image($attach_id,$mime[0]);
            if($mime[0]=='image') 
                $rt .=    '<span class="rcl-field-input type-checkbox-input">'
                        . '<span class="rcl-checkbox-box">'
                        . '<input class="thumb-foto" id="thumb-'.$attach_id.'" type="checkbox" '.checked(get_post_thumbnail_id( $editpost ),$attach_id,false).' name="thumb['.$attach_id.']" value="1"     (//ЭТО ЗДЕСЬ>>>>)   '.if (is_page(291)) {echo "checked"}.'>'
                        . '<label for="thumb-'.$attach_id.'" class="block-label"> - '.__('Сделать изображением статьи','wp-recall').'</label>'
                        . '</span>'
                        . '</span>';
            $rt .= "</label>
    </li>";
    return $rt;


if (is_page(291)) {echo "checked"} пытаюсь вставить вот это, но не выходит, не пойму в чем ошибка, как сделать правильно?
  • Вопрос задан
  • 232 просмотра
Решения вопроса 1
v3shin
@v3shin
Веб-шаман
Проблема в несоблюдении синтаксиса php.
if (is_page(291)) {echo "checked"}
Замените тернарным оператором
(is_page(291) ? "checked" : "")
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
berezuev
@berezuev
#define TRUE FALSE
Че-то у вас какая-то жесть с кучей ошибок в синтаксисе вообще.
Напишите в 1 переменную шаблон, а ля
$template = "<li class='attachment-%s'>%s<label>..............";


А $rt получите с помощью sprintf. И не забывайте про скобки в if
Ответ написан
lxfr
@lxfr
Вы пытаетесь вызвать echo посреди слияния строки посредством точки.
Т.е. вы пишите $x = 'test' . echo 123 . ' test'....
Уберите echo, оно вообще то выводит на экран.
Ответ написан
Комментировать
@balamyt92
; select * from users; --
Ваша проблема уже решена но я не могу молчать. Что за &%(*$#&%@()*&% вы делаете?
Шаблоны с помощью конкатенации? Себя пожалейте.

Сделайте хотя бы так:

в отдельный файл, например template1.php, поместите примерно такой код:

<li class='attachment-<?= $attach_id ?>'>
  <?= rcl_button_fast_delete_post($attach_id) ?>
  <label>
    <?= rcl_get_insert_image($attach_id,$mime[0]) ?>
    <?php if($mime[0]=='image'): ?>
      <span class="rcl-field-input type-checkbox-input">
        <span class="rcl-checkbox-box">
          <input class="thumb-foto" 
                 id="thumb- <?= $attach_id ?>" 
                 type="checkbox" <?= checked(get_post_thumbnail_id( $editpost ),$attach_id,false) ?> 
                 name="thumb[<?= $attach_id ?>]" 
                 value="1"
                 <?= is_page(291) ? 'checked' : ''?>
          >
        </span>
      </span>
    <?php endif; ?>
  </label>
</li>


Выглядит по приятнее? но как этим добром воспользоваться?
Очень просто, с помощью require подключаете файл:
$rt = require(__DIR__ . '/template1.php');
всё, в $rt результат. Это просто пример, он ДАЛЕКО НЕ ИДЕАЛЕН и в нем ПОЧТИ ВСЕ ПЛОХО, но это в разы лучше того ужаса что вы делаете.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы