2015-06-03 89 views
1

我現在使用wordpress 4.2,併爲它自己的網站開發主題。WordPress的自定義post_type存檔網址和默認查詢

我在我的主題中定義了許多自定義帖子類型,現在我正在尋找一種方法爲它們創建一些存檔頁面。


例如,我有一個名爲shop post_type,並有一個名爲region分類分配給它。

我創建一個模板文件:category-region.php

然後我訪問這個模板的永久鏈接:http://example.com/category/region/,這個模板匹配,並初始化所有分配店查詢,然後顯示出來。

但是現在我想用商店的所有貼子製作一個頁面,不管它們分配到哪個區域。

我該如何命名模板文件以及永久鏈接呢?


我檢查了模板層次結構並找到了下圖。

https://developer.wordpress.org/themes/basics/template-hierarchy/

enter image description here

看來archive-$post_type.php是我想要的。

但是,指向這個模板的永久鏈接呢?

+0

區域是一個自定義分類還是一個分類術語? 'category-region.php'應該是'region'類別的模板文件。 –

+0

@mtinsley是的,分類。 –

+0

看到這個問題:https://wordpress.org/support/topic/wp_query-with-custom-post_type-and-global-category –

回答

2

您傳遞給register_post_type的參數中的rewrite參數確定了您的自定義帖子類型存檔的永久鏈接。

https://codex.wordpress.org/Function_Reference/register_post_type

望着文檔中的例子:

$args = array(
    'labels'    => $labels, 
    'public'    => true, 
    'publicly_queryable' => true, 
    'show_ui'   => true, 
    'show_in_menu'  => true, 
    'query_var'   => true, 
    'rewrite'   => array('slug' => 'book'), 
    'capability_type' => 'post', 
    'has_archive'  => true, 
    'hierarchical'  => false, 
    'menu_position'  => null, 
    'supports'   => array('title', 'editor', 'author', 'thumbnail', 'excerpt', 'comments') 
); 

register_post_type('book', $args); 

你可以看到,這本書CPT重寫蛞蝓是book,使URL書存檔會example.com/book/

對於你的情況,如果你設置你的重寫段落爲shop(或者如果你沒有設置重寫段落,在這種情況下它將默認爲你的CPT段落),那麼對應於你的archive-shop.php模板的URL將會是example.com/shop/

請注意,假設您使用的是固定鏈接,如果您沒有使用固定鏈接,則該網店信息類型存檔位於example.com/?post_type=shop。如果您使用固定鏈接,請通過訪問Settings > Permalinks頁面確保在設置CPT後刷新它們。

+0

不完全是。這個設置不符合我的要求。最後我發現結果是'/?post_type = shop'。您的解決方案沒有指出這一點,但顯示有用的信息,謝謝! –

+0

我的解決方案假設您使用的是固定鏈接。當使用永久鏈接時,'example.com/shop /'映射到'example.com/?post_type = shop' –

+0

哦,我明白了!謝謝。我試過但失敗了。現在我發現這是因爲我忘了刷新'.htaccess'文件。您的解決方案非常完美! –