欢迎光临
我们一直在努力

自定义 wp_list_categories 函数 html 输出

网站顶端的标签归档页是很久之前参照网友的文章弄的,后来为了和谐又加了个分类归档页。这个页面调用的关键函数是 wp_list_categories(),相关的说明可以参见 wp_list_categories() | Function | WordPress Developer Resources。

分类归档页是上图这样的,后面括号中的数字表示该分类下的文章数。一直以来看着都有点别扭,想把它改成“生活感悟(188 篇文章)”这种样式,只是之前不知道怎么弄。这两天稍微了解了下 WordPress 过滤器的用法,正好看到 wp_list_categories() 函数的代码中自建了跟函数同名的过滤器:

$html = apply_filters( 'wp_list_categories', $output, $args );

于是在主题 functions.php 里找了段相似代码,照葫芦画瓢的写了下面这段:

<?php
function customize_wp_list_categories( $output, $args ) {
	$pattern = '/\s\((\d+)\)\s/i';
	$replacement = '($1 篇文章)';
	$output = preg_replace( $pattern, $replacement, $output );
	return $output;
}
add_filter( 'wp_list_categories', 'customize_wp_list_categories', 10, 2 );
?>

最后的效果就是这样的:

另外 wp_list_categories() 函数输出分类,我设置为按照 ID 的顺序 'orderby' => 'id',却发现跟网页上面的导航栏顺序不一致。后台看了下才发现分类的 ID 并不是按照我预想的顺序排列的,这应该跟起初建站时创建分类出错又删除或者重命名等有关。所以网上找了下如何修改分类目录 ID,这里只记录使用 SQL 语句的方法。

update wp_terms              set term_id          = 4 where term_id          = 21;
update wp_term_taxonomy      set term_id          = 4 where term_id          = 21;
update wp_term_taxonomy      set parent           = 4 where parent           = 21;
update wp_term_taxonomy      set term_taxonomy_id = 4 where term_taxonomy_id = 21;
update wp_term_relationships set term_taxonomy_id = 4 where term_taxonomy_id = 21;

如上所示。其中 21 为目前的 ID,4 为想要修改为的 ID。

赞(0) 打赏
未经允许不得转载:哈哈 » 自定义 wp_list_categories 函数 html 输出

评论 抢沙发

更好的WordPress主题

支持快讯、专题、百度收录推送、人机验证、多级分类筛选器,适用于垂直站点、科技博客、个人站,扁平化设计、简洁白色、超多功能配置、会员中心、直达链接、文章图片弹窗、自动缩略图等...

联系我们联系我们

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续提供更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫打赏

微信扫一扫打赏

登录

找回密码

注册