2016-05-07 8 views
0

Я пытаюсь найти решение для удалить например. http://website/drinks/, затем добавить a hashtag в начале категорий-slugname, например. #coffee.WordPress: Добавить hashtag в категорию-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> 


Решение должно быть codded в functions.php моей темы WordPress. Я не мастер по кодированию, но я основал способ добавить хэш в конце 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

Привет Дэну, Wow спасибо! Это именно то, что я ищу! :) –