2016-05-03 78 views
1

之前,我的問題,讓我說,我在這裏看到了類似的問題,有相當詳細的答覆:如何將一個Wordpress頁眉和頁腳拖入Laravel視圖?

https://wordpress.stackexchange.com/questions/115211/loading-wordpress-stuff-on-laravel-site

它是什麼,我」我已在網頁上找到的最接近米尋找,但潛在的解決方案看起來像它可能最終是如此辛苦,以致不值得的時間。這是我的情況:

我開發並維護一個通常在客戶站點的子域(比如software.client.com)上運行的小型自定義SaaS程序。代碼的最新版本使用Laravel進行了重寫,並且有很多相關的收益。過去,當程序基本上是程序化的意大利麪條時,如果我們有一個客戶端在其主域上有一個Wordpress網站,我們運行了一些非常糟糕的(通過最佳實踐標準)的黑客代碼來將Wordpress頁眉和頁腳拖到我的程序的頁面 - 當然,在CMS之外 - 同時修改元標記並執行其他一些操作。它不漂亮,但它的工作。

現在我在的情況下,我想解決同樣的問題 - 也就是說,要至少拉WordPress的頁眉和頁腳到一些Laravel子域的觀點 - 但沒有我發現上迄今爲止,網絡使我在這方面取得了很大的進展。我發現很多教程解釋瞭如何整合Laravel和Wordpress,或者將前者用於前端,另一個用於後端等,但還沒有涉及到我正在討論的特定類型的集成。

我到目前爲止所嘗試的是將其他地方使用的一些代碼實現到Laravel代碼庫的各個部分。最近的大部分實驗都在public/index.php和Controller方法中。 Laravel將允許我儘可能包括Wordpress配置,但如果我嘗試繼續前進,則會導致500錯誤。這是一個實際上試圖做比我需要的更多的代碼片段,但我甚至無法通過wp_init()。想象一下Laravel Controller方法中的以下代碼。前兩行是行,但:

public function index() { 
    define('WP_USE_THEMES', false); 
    require '/path_to/wp-config.php'; 
    $wp->init();      // from here on, 500 errors occur 
    $wp->parse_request(); 
    $wp->query_posts(); 
    $wp->register_globals(); 

    // And then, at some point, I would call and modify get_header() 

(我真的不希望這種從控制器的工作,但它不會從代碼庫中其他地方工作,我已經試過兩種)。這是不是我想從Laravel把控制權交給Wordpress來處理這些URL的情況(我需要Laravel函數/數據庫查詢和更多的靈活性,而且我知道我可以通過public/index.php和路由進行交互。 PHP如果它能解決問題)。對於這些安裝,我不需要從Wordpress中獲取帖子或其他項目。我只想找到一種方法將標頭頁腳直接從Wordpress拖入這些視圖中,同時保持對Laravel中視圖的控制。如果我不能,除其他事項外,設計團隊最終將爲Wordpress客戶端上的每個程序安裝(暫時)重新構建頁眉和頁腳,並且當事情被修改時,他們將不得不在至少兩處進行更改或更新。如果我們必須這樣做,我們將找到一種生活方式,直到下一個程序版本推出爲止,但如果我能夠在我的上級會認爲合理的時間內構建解決方案,那麼我們都會更快樂。我希望我在某個地方錯過了一些簡單的事情,我會很尷尬地發現,我可以用比解釋問題所需的時間更少的時間來解決這個問題。感謝您提供任何有用的迴應和潛在的解決方案。

回答

0

您無法將兩個代碼庫完全合併在一起。那會造成災難。

解決方案的複雜性取決於您需要共享的信息的複雜性。最簡單的解決方案可能是爲WordPress定製一些自定義文件,這些文件不包含正文數據,只提供一個令牌,如{!! $body !!}。然後,在Laravel中,您可以向本地主機執行HTTP請求以獲取此標記化內容。將結果存儲在內存緩存中,並使用Blade來渲染最終視圖。

基本上,我的建議歸結爲:使用WordPress創建刀片佈局。

有一千種不同的方式來做到這一點,他們都是錯的。