Функция PHP echo включает файл

В настоящее время я разрабатываю плагин для wordpress. Я создал шорткод, который отображает содержимое другого файла html/php, это выглядит так:

function df_display_form()
{
    // Fetching some data with $wpdb

    // Display the data
    include_once plugin_dir_path(__FILE__) . 'markup/show-dynamic-form.php';
}

Моя проблема в том, что шорткод будет отображаться вверху страницы. Итак, я погуглил этот выпуск и нашел решение. Как там написано, проблема в том, что вместо return нужно использовать echo.

Итак, мой вопрос: как я могу вернуть содержимое рендеринга из включенного файла? (не эхо).

Возможный дубликат Хранение эхо-строк в переменной в PHP

MonkeyZeus 30.04.2019 19:20
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
1
50
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Попробуйте использовать выходной буфер. https://www.php.net/manual/en/function.ob-get-clean.php

function df_display_form()
{
    ob_start(); 
    // Fetching some data with $wpdb

    // Display the data
    include_once plugin_dir_path(__FILE__) . 'markup/show-dynamic-form.php';
    $out = ob_get_clean();
    return $out;
}

Вы должны использовать функцию php для отображения формы с помощью шорткода.

Я думаю, что в настоящее время у вас есть этот тип кода в файле show-dynamic-form.php.

<?php

// Some codes

?>

<form>

Form elements

</form>

Он просто отобразит ваш код в верхней части вашего сообщения или страницы. Правильный способ:

<?php

    // Some codes

    $variable = '<form>';
    $variable .= 'form elements';
    $variable .= '</form>';

    return $variable;

?>

Попробуйте использовать этот способ в вашем файле dynamic-form.php, и он должен работать.

Другие вопросы по теме