2014-12-23 2 views
0

Я пытаюсь интегрировать Wordpress в тему Boxbillng, но проблема в том, что код PHP, который я использую, вообще не разбирается.Код PHP не работает в файле PHTML

Вот код, который получает меню Wordpress:

<?php 
    include('../wp-load.php'); 
    wp_nav_menu(array ('menu' => 'Main Menu')); 
?> 

Тогда вот код для BoxBilling Тема:

<div class="main-navigation"> 
    <?php 
     echo file_get_contents("http://www.glowstonehosting.net/nav.php"); 
    ?> 
</div> 

Но тогда в Google Chrome Проверьте элемент он показывает это:

<!--?php 
     echo file_get_contents("http://www.glowstonehosting.net/nav.php"); 
?--> 

Итак, все они были прокомментированы, я также попробовал один из ответов от anoth эр вопрос simlilar к этому: php in .phtml file not parsing

Единственный ответ, который предложил добавить это к Wordpress .htaccess:

AddType application/x-httpd-php .php .phtml 

Который до сих пор не работает так, есть ли какие-нибудь идеи?

+0

Ваша ссылка выше, сгенерирована 'Warning: include (../ wp-load.php) [function.include]: не удалось открыть поток: нет такого файла или каталога ...' поэтому это говорит мне, что это путь. Следовательно, и, в свою очередь, вызов функции не выполнен. «Неустранимая ошибка: вызов неопределенной функции wp_nav_menu()». –

+0

.... Fred ummmm У вас нет локальной копии навигационной панели в этой папке, так как вы хотите ее просматривать .............. – user3750649

+0

Открыв URL-адрес в моем браузере. Может быть, может или не быть релевантным, но это породило эти ошибки. Добавьте отчет об ошибках в начало файла (ов) сразу после открытия тега < 'error_reporting (E_ALL); ini_set ('display_errors', 1); 'посмотрите, не даст ли что-либо. –

ответ

-1

file_get_Contents загружает файл в виде строки, PHP не интерпретируется. Что вы хотите, это include или require, который будет интерпретировать php.

<div class="main-navigation"> 
    <?php 
     include("some/filesystem/path/nav.php"); 
    ?> 
</div> 

Обратите внимание на изменение в том, что вы хотите использовать путь к файлу в файловой системе, предположительно, вы загружаете файл на том же сервере, который вызывает включаемый. Если это так, вам не нужно добавлять обработчиков, если вы не планируете нажимать файл php напрямую через веб-сервер, например http://somedomain.com/somefile.phtml

+0

Это не имеет ничего общего с моей проблемой, проблема в том, что PHP получает парсинг как комментарий, а не скрипт PHP. – Elxafil

+0

Итак, вы на самом деле пытаетесь получить контент на удаленном ресурсе? – prodigitalson

+0

Нет, файл nav.php загружает меню Wordpress в формате HTML, и тема boxbilling должна загружать этот файл, это все, что мне нужно для справки, но php обрабатывается как комментарий, а не фактический php-код. – Elxafil

0

Я считаю, что самый простой подход - создать расширение Twig и использовать его позже в .phtml файл.

Создание функции:

public function get_contents($url) 
{ 
    return file_get_contents($url); 
} 

включить его в список прута фильтры:

public function getFilters() 
{ 
    return array(
     new \Twig_SimpleFilter('get_contents', array($this, 'get_contents')), 
    ); 
} 

и использовать его в любом месте в шаблоне Twig:

{{ 'http://www.glowstonehosting.net/nav.php'|get_contents }} 

How to Write a custom Twig Extension

Creating an extension for advanced users

Смежные вопросы