問題描述

如何按年份顯示自定義帖子型別的檔案月?

最佳解決方案

是的你可以。所有你需要的是為 wp_get_archives(); 做一個過濾器,所以它接受 post_type 引數:

function my_custom_post_type_archive_where($where,$args){  
    $post_type  = isset($args['post_type'])  ? $args['post_type']  : 'post';  
    $where = "WHERE post_type = '$post_type' AND post_status = 'publish'";
    return $where;  
}

然後呼叫:

add_filter( 'getarchives_where','my_custom_post_type_archive_where',10,2);

每當您想透過自定義帖子型別顯示歸檔時,只需傳遞 post_type 引數:

$args = array(
    'post_type'    => 'your_custom_post_type',
    'type'         => 'monthly',
    'echo'         => 0
);
echo '<ul>'.wp_get_archives($args).'</ul>';

次佳解決方案

你不是,Wordpress 開發人員的官方線路是,自定義帖子型別不是要做正常的普通帖子的工作,如果你需要 post 檔案的日期等,那麼你沒有正確的做事情,你最好使用帖子格式等。

自定義帖子型別適用於網路應用程式等,同時執行某些操作,例如設定用作不同名稱的輔助或並行部落格的自定義帖子型別,例如。部落格 vs 新聞,具有相同的能力,不是該功能的意圖,而是意味著其實施中產生的其他技術問題。

如果您仍然堅持這一點,只需使用自定義分類法和釋出格式是不夠的,您可以在 functions.php 中新增重寫規則,並將某些 URL 中的年/月檔案重定向到歸檔頁面,然後檢查自定義如果您在重寫規則中指定了變數並載入其他模板,請確保在重寫規則中設定適當的值。

第三種解決方案

編輯 – > 雖然這個答案仍然適用於< WP4.4,因為 4.4 自定義帖子型別的支援現在包含在 wp_get_archives()


終於有一個簡單,快速和簡單的解決方案為 WordPress 中的自定義帖子型別的基於日期的檔案!這是一個長期存在的問題,在 WP Core Trac 中是 recorded here

它尚未解決,但 Trac 的一個貢獻者已經發布了一個 simple plugin in GitHub,這將使您能夠為 CPT 提供日期歸檔。

安裝此外掛或手動新增功能程式碼後,您可以為 CPT 案例使用歸檔:

<?php wp_get_archives_cpt( 'post_type=custom_post_type' ); ?>

注意這個新功能 wp_get_archives_cpt 與標準 wp_get_archives 相同,所以你可以使用它接受的任何常規引數。但是,它只是新增了能夠新增自定義帖子型別名稱引數的功能。

參考文獻

注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。