2016-05-07 62 views
0

我試圖找到解決方案刪除例如, http://website/drinks/,然後add在類別slugname開始處的hashtag例如, #coffeeWordPress的:爲類別添加哈希標籤slugname

現狀:

<ul> 
<li class="cat-item-1"><a href="http://website/drinks/coffee/">Coffee</a></li> 
<li class="cat-item-2"><a href="http://website/drinks/tea/">Tea</a></li> 
</ul> 

理想狀況:

<ul> 
<li class="cat-item-1"><a href="#coffee">Coffee</a></li> 
<li class="cat-item-2"><a href="#tea">Tea</a></li> 
</ul> 


解決方案必須在我的WordPress主題的functions.php被codded。我不擅長編碼,但我已經創建了一種在URL末尾添加散列的方法。

add_filter('wp_list_categories', 'filter_categories', 10, 2); 

function filter_categories($output, $args=array()){ 
     return preg_replace('/(\<a\shref=\"?[^\>]+?)\"/', '$1#"', $output); 
} 

輸出:

<ul> 
<li class="cat-item-1"><a href="http://website/drinks/coffee/#">Coffee</a></li> 
<li class="cat-item-2"><a href="http://website/drinks/tea/#">tea</a></li> 
</ul> 

不幸的是,這是從我的理想狀況了......任何人都可以請幫我嗎?

回答

1

試試這個:

add_filter('wp_list_categories', function($html, $args) { 

    $pattern = '/https?:\/\/([^\/]+)\/([^\/]+)\/?/'; 

    $html = preg_replace($pattern, '#', $html); 

    return preg_replace('/\/["\']/', '"', $html); 

}, 10, 2); 
+0

嗨丹,哇感謝!這正是我正在尋找的! :) –