我第一次使用木材,我發現很難將純粹的PHP思想轉換爲模板模型。擴展木材
我現在困惑的是使用一個日期,這是一個輸入字段,而不是發佈日期。
所以我有一個來自ACF的中繼器字段。它有三個子字段:release_date
,document_fil
e和document_title
。我的發佈日期格式是YYYY-MM-DD
。
正如您可能已經猜到的那樣,此中繼器字段以PDF列表的形式輸出。
到目前爲止這麼好,但我想要一些高級功能 - 即默認情況下通過release_date顯示PDF。我還希望能夠按年過濾,即 - 如果點擊「2015」,則只顯示該年的文檔。
我完全知道如何在直接的WordPress中做到這一點,但我很困惑,使它在木材。我一直在嘗試使用自定義過濾器來做到這一點,但我已經感覺到我真正想要的是一個自定義類。
此外,當我安裝木材它沒有與首發主題,所以我做了搜索,並從GitHub下載。我有一種感覺,這是一個傳統版本,因爲文件結構和語法似乎不符合文檔。
從這裏下載:https://github.com/timber/starter-theme
但是例如該代碼在啓動主題的functions.php:
function add_to_twig($twig) {
/* this is where you can add your own functions to twig */
$twig->addExtension(new Twig_Extension_StringLoader());
$twig->addFilter('split_date', new Twig_SimpleFilter('split_date', array($this, 'split_date')));
return $twig;
}
並不完全在https://github.com/timber/timber/wiki/Extending-Timber匹配「添加到嫩枝」下的語法。
用於添加「過濾器」的語法有點不同,但仍然正確。使用'array($ this,'split_date')'等於告訴'twig':添加一個新的過濾器'split_date'併爲它分配基於'$ this'類的函數。該文檔中的示例使用全局函數而不是類方法 – DarkBee
好吧,很酷,所以不要棄用。但是,儘管我正在努力達到目標,這是否是一種合理的方式?我希望能夠分割日期(因此'split_date')並分別使用日,年和月。 – rickibarnes
如果你的發佈是一個有效的日期字符串,我會去:'{{ release_date | date('Y-m-d') }}' – DarkBee