2017-01-10 39 views
0

我正在嘗試創建一些帖子以顯示在遵循相同URL結構的CPT分類標準頁上。在WordPress中添加具有相同URL結構的分類下的頁面

我有一個職位類型動物動物類別分類的,這些頁面生成的網址是:

  • domain.com/animal
  • domain.com/animal-category

然後我想創建一個標準頁面(不是pa這篇文章類型),這將有URL的RT:

  • domain.com/animal-category/page-name

結構上的頁面是無關的動物的帖子,並可能是標準頁面還是帖子類型,這並不重要。

經過研究和以前的知識,我找不到重寫規則來強制頁面使用domain.com/animal-category在添加頁面名稱之前 - 因爲它已被重寫爲分類。

也許有一個完全不同的解決方案來實現分類列表中的頁面(使用此URL結構)?

+0

您引用的分類是固定的還是不同頁面的變量? –

+0

我正在嘗試創建一個頁面,您將與其中一個分類標準關聯的頁面將重寫URL。我可以進行這種關係,但不能重寫URL以使URL的起始地址與分類法URL相同。分類法可以是狗,貓,馬。 – bigdaveygeorge

回答

0

你完全可以做到這一點:)

1)在你的主題創建動物分類模板,並將其命名爲分類學動物category.php

2)在循環中使用的條件來獲得顯示項目(查詢對象)如下:

<?php $querried_slug = get_queried_object()->slug; 

if($querried_slug=="page-name"){ //IT IS THE PAGE we have 


}else{ ?> 
<?php if (have_posts()) : ?> 


     <?php 
     // Start the Loop. 
     while (have_posts()) : the_post(); 

     // End the loop. 
     endwhile; 
    else : 

     echo "NO animals found :)"; 

    endif; 
<?php } ?> 
+0

對不起,我想你是誤會 - 你寫上面的代碼將顯示在頁面domain.com/animal-category/內容,如果它存在,如果沒有它會顯示的類別。我想將頁面與具有相同URL結構的動物類別相關聯,例如domain.com/animal-category/page-name,然後我將使用上面使用的模板來顯示類別本身上的這些頁面的鏈接。 – bigdaveygeorge

0

我會接受你想要的網址是如下,

http://example.com/%taxonomy%/page-name 

請看看過濾器_get_page_link。雖然這個過濾器不打算與主題或插件開發一起使用,但您可以使用它來實現您的任務。

所以按如下方式使用它,

add_action('init', array($this, 'custom_rewrite_rules'), 1, 0); 
/* 
* Rewrite page urls 
* adding prefix to page urls 
*/ 
function custom_rewrite_rules() 
{ 
    global $wp_rewrite; 
    $wp_rewrite->add_rewrite_tag("%taxonomy%", '([^/]+)', 'taxonomy='); 
    $wp_rewrite->page_structure = $wp_rewrite->root. '%taxonomy%/%pagename%';   
} 

以上函數將創建所需的URL。現在使用過濾器將%taxonomy%更改爲您的價值。

add_filter('_get_page_link', 'custom_taxonomy_page_link', 10, 2); 
function custom_taxonomy_page_link($link, $post_id) { 
    $link = str_replace('%taxonomy%', 'animal-category', $link); 
    return $link; 
} 

這沒有得到正確測試,但很少有研究可能會幫助你。

相關問題