Могу ли вставить php в переменную вордпресс?

Здравствуйте. Зашел в тупик, так как не могу найти информацию на эту тему. Буду рад даже ответу "Можно так делать" или нереально.
Есть код, простой, который создает пост в WP на основе ответов пользователя. Теперь нужно в post_content передать ответы, которые зависят от ответа пользователя при заполнении формы( форма отправляется POST-запросом.
Я создал переменную test, в которую хочу разместить код, который включает php. Тэги html публикуются, а вот со вставкой php проблема.
$test = '
<? if(IsChecked('questions', $gkt)) { ?>
   <h3 align="center" style="border: 2px solid #f9c6a9; padding: 10px; margin: 0 -2px 0 -2px; background-color: #f9c6a9;">Тут текст:
</h3>
    <ul class="reddotsli">
   <? if(IsChecked('questions','q1_a1')) {
    echo ' <li>Первый ответ</li>';
    }
    ?>
<? if(IsChecked('questions','q1_a2')) {
    echo ' <li>Второй ответ';
    }
    ?>
    <? if(IsChecked('questions','q1_a3' || 'q1_a4')) {
    echo ' <p><span class="reddot"></span>Третий ответ</p>';
    }
    ?>
....................
';


$post_data = array(
    'post_title' => 'Ответы',
    'post_content' => $test,
    'post_status' => 'private',
    'post_author' => $user_ID,
    'post_category' => [1],
    'comment_status' => 'closed',
);
  • Вопрос задан
  • 58 просмотров
Решения вопроса 1
artzolin
@artzolin Куратор тега WordPress
php, WordPress разработка сайтов artzolin.ru
$post_content = '';

if ( IsChecked( 'questions', $gkt ) ) {
	$post_content .= '<h3 class="title">Заголовок:</h3>';
	$post_content .= '<ul class="list">';
}

if ( IsChecked( 'questions', 'q1_a1' ) ) {
	$post_content .= '<li>Первый ответ</li>';
}

if ( IsChecked( 'questions', 'q1_a2' ) ) {
	$post_content .= '<li>Второй ответ</li>';
}

if ( IsChecked( 'questions','q1_a3' ) || IsChecked( 'questions', 'q1_a4' ) ) {
	$post_content .= '<li>Третий ответ</li>';
}

if ( IsChecked( 'questions', $gkt ) ) {
	$post_content .= '</ul>';
}


Не знаю, что у вас делает функция IsChecked(), но данные из формы приходят в переменную $_POST, ее нужно проверять

В WordPress принято именовать функции в нижнем регистре через нижнее подчеркивание is_checked()

И вам нужно переписать это все с использованием репитера, чтобы не было этого полотна проверок
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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