WordPress:将主题标签添加到 category-slugname
WordPress: Add a hashtag to the category-slugname
我正在尝试找到 删除 的解决方案,例如http://website/drinks/
,然后 在 categories-slugname 的开头添加 标签,例如#coffee
.
现状:
<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 中。我不是编码大师,但我找到了一种在 URL.
末尾添加哈希的方法
add_filter('wp_list_categories', 'filter_categories', 10, 2);
function filter_categories($output, $args=array()){
return preg_replace('/(\<a\shref=\"?[^\>]+?)\"/', '#"', $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>
不幸的是,这偏离了我想要的情况...有人可以帮我吗?
试试这个:
add_filter('wp_list_categories', function($html, $args) {
$pattern = '/https?:\/\/([^\/]+)\/([^\/]+)\/?/';
$html = preg_replace($pattern, '#', $html);
return preg_replace('/\/["\']/', '"', $html);
}, 10, 2);
我正在尝试找到 删除 的解决方案,例如http://website/drinks/
,然后 在 categories-slugname 的开头添加 标签,例如#coffee
.
现状:
<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 中。我不是编码大师,但我找到了一种在 URL.
add_filter('wp_list_categories', 'filter_categories', 10, 2);
function filter_categories($output, $args=array()){
return preg_replace('/(\<a\shref=\"?[^\>]+?)\"/', '#"', $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>
不幸的是,这偏离了我想要的情况...有人可以帮我吗?
试试这个:
add_filter('wp_list_categories', function($html, $args) {
$pattern = '/https?:\/\/([^\/]+)\/([^\/]+)\/?/';
$html = preg_replace($pattern, '#', $html);
return preg_replace('/\/["\']/', '"', $html);
}, 10, 2);