Обертывание PHP и HTML в PHP функции для создания шорткода - PullRequest
0 голосов
/ 14 июля 2020

Я пытаюсь создать шорткод для использования в WordPress, который позволит мне использовать функции PHP и HTML.

Я создал шорткод, и он работает, используя простое эхо Hello World , но когда я пытаюсь использовать его для отображения результатов 160 строк PHP и HTML, он просто ничего не показывает, даже ошибок.

Попробовав несколько разных способов, самый простой способ показался мне быть:

function imported_table( $atts ) {
    $var = file_get_contents(TEMPLATE_DIR . "/imported_table.php");
}
add_shortcode( 'imported_output', 'imported_table');

... где import_table.php содержит мои 160 строк HTML и PHP. TEMPLATE_DIR устанавливается в wp-config и работает должным образом - по крайней мере, я не получаю ошибок «отсутствующий файл» (после пары ошибок).

Файл import_table. php немного длинноват разместить здесь, но по сути это так:

<Some HTML>
<?php 
?>
<Some HTML with <?php >>
<?php 
?>
<closing HTML>

Это много HTML и вложенных PHP. Код работает сам по себе, если я использую его в плагине PHP для WordPress, но было показано, что у плагина есть уязвимости и собственные ошибки, поэтому я пытаюсь использовать этот код в шорткоде.

1 Ответ

1 голос
/ 14 июля 2020

Вы можете попробовать это?

Не используйте TEMPLATE_DIR и file_get_contents.

    function imported_table( $atts ) {
        ob_start();
        include(get_template_directory() . "/imported_table.php");
        $var = ob_get_contents();
        ob_end_clean();
        echo $var;
    }
...