Intereting Posts
Pagination не работает в пользовательском типе сообщения Целевые таксономические запросы Создание мета-поля администратора для сохранения сообщения в ожидании Разрешены ли ссылки в разделе Уведомление об обновлении файла readme.txt плагина? Как я могу отображать части пользовательских сообщений? show / hide div с простым сценарием jQuery Задайте шаблон страницы по умолчанию для загрузки для нескольких сайтов Как удалить слово из URL-адреса в WordPress с помощью .htaccess? Параметры обновления wp.media и принудительная рендеринг на загрузчике Страница регистрации BbPress в Breadcrumbs В каком файле php перечислены все позиции категории Пользовательский заказ WP_Query и разбивка на страницы Как добавить изображение в заголовок сообщения? Есть ли способ совместного использования контента среди сайтов WordPress? Остановить дублирование терминов в перекрестном цикле

Не удалось обработать php через короткий код

Я искал исправления для этого, и хотя я определенно лучше понимаю мою проблему (благодаря подобным запросам, отправленным другими), я все еще не уверен в решении.

Я пишу короткий код следующим образом:

function cup_bc_shortcode(){ $html = file_get_contents('/html/cup_bc_layout.php', true); return $html; } add_shortcode('budgetcalc', 'cup_bc_shortcode'); 

Файл 'cup_bc_layout.php' содержит html и PHP. PHP-код представляется как текст на выходе, а не обрабатывается браузером. Есть ли все-таки включить PHP-файл таким же образом?

Я ценю, что короткий код должен возвращать результат для работы, но я бы предпочел не создавать его в виде одной строки из этой функции, если я могу ей помочь.

Также я новичок в PHP, поэтому даже самые очевидные решения, возможно, ускользнули от меня.

Ваша помощь очень ценится.

Solutions Collecting From Web of "Не удалось обработать php через короткий код"

Проблема в том, что вы используете file_get_contents() который получает содержимое файла (отсюда и название)

если вам нужно визуализировать (оценивать и обрабатывать файл php), то просто используйте include() .

Но также, если ваше echo cup_bc_layout.php выдает что-то, тогда вы должны поместить include внутри буфера объектов, а затем вернуть значение, чтобы убедиться, что короткий код работает правильно.

Поэтому попробуйте следующее:

 function cup_bc_shortcode($atts,$content=NULL){ ob_start(); include('/html/cup_bc_layout.php'); $return_val = ob_get_contents(); ob_end_clean(); return $return_val; } add_shortcode('budgetcalc', 'cup_bc_shortcode'); в function cup_bc_shortcode($atts,$content=NULL){ ob_start(); include('/html/cup_bc_layout.php'); $return_val = ob_get_contents(); ob_end_clean(); return $return_val; } add_shortcode('budgetcalc', 'cup_bc_shortcode'); 

Почему бы вам не поместить код этого файла внутри функции cup_bc_shotcode() напрямую, а не вызвать отдельный файл. Или поместите код этого файла в функцию, а затем вызовите функцию внутри функции cup_bc_shotcode() .