2017-08-05 39 views
1

對於Wordpress來說,這是一個相當新的嘗試,我想了解如何實現除模板層次結構建議的序列之外的一系列頁面。WordPress的:如何實現除模板層次結構以外的頁面序列

考慮(例如)一個可以購買不同產品的網站。我們有自定義的帖子類型「產品」。可以選擇產品並添加到購物車中。當用戶想要退房時,他將獲得一系列頁面來完成一個或多個產品的結賬。

實現這樣一個序列的最好方法是什麼?在正常的網站中,它只是一些相互鏈接的頁面。在Wordpress中,在編寫代碼的時候,頁面ID是未知的,只有在wp admin中創建頁面後才能知道。在此之後,我們可以使用頁面ID,但是當推出到不同的環境時(例如從開發到測試或生活),我們必須在wp admin中再次創建頁面,從而產生新的頁面ID。頁面ID將不得不在代碼中改變。這在我看來是不可取的,容易出錯,對吧?

除了同步數據庫,有沒有在Wordpress中處理這個問題的方法?換句話說,除了正常的WordPress模板層次結構流之外,實現鏈接到彼此的頁面序列的最佳設計是什麼?

回答

0

作爲一種解決方案,我創建了一種基於來自php和javascript的邏輯ID來訪問永久鏈接的方法。當推出到一個不同的環境時,只需要在functions.php中的一個數組中更改從邏輯ID到URL的映射,就完成了。

要排隊的.js文件中的functions.php:在functions.php的

wp_register_script('aom_script', get_template_directory_uri() . '/script.js', array('jquery')); 
wp_localize_script('aom_script', 'my_js_permalinks', aom_get_page_permalinks()); 
wp_enqueue_script('aom_script'); 

代碼存儲和訪問固定鏈接:

function aom_get_page_permalinks() { 
    $page_permalinks = array(
     "home"=>get_bloginfo('url'), 
     "someurl"=>get_permalink(14), 
     "anotherurl"=>get_permalink(16) 
    ); 
    return $page_permalinks; 
} 

function aom_get_page_permalink($page_id) { 
    $page_permalinks = aom_get_page_permalinks(); 
    return $page_permalinks[$page_id]; 
} 

現在,如果你的PHP需要一個固定鏈接:

aom_get_page_permalink('someurl'); 

如果你需要一個固定鏈接在javascript:

my_js_permalinks.someurl;