2014-12-23 67 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> 

但隨後在谷歌瀏覽器檢查元素就說明這一點:

<!--?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

....弗雷德ummmm你沒有該文件夾中的導航欄的本地副本,那麼你是如何打算能夠查看它.............. – user3750649

+0

通過打開網址在我的瀏覽器中。可能或可能不相關,但確實會拋出這些錯誤。在打開'<?php'標籤後立即在文件頂部添加錯誤報告 'error_reporting(E_ALL); ini_set('display_errors',1);'看看它是否產生任何東西。 –

回答

-1

file_get_Contents加載該文件作爲一個字符串,PHP沒有解釋。你想要的是includerequire這將解釋的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文件以HTML格式加載Wordpress菜單,並且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')), 
    ); 
} 

,並用它在枝杈模板的任何地方:

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

How to Write a custom Twig Extension

Creating an extension for advanced users