我正在通过自定义 Worpress 默认主题来工作。我遇到了格式化存档链接的问题。
默认主题wp_get_archives
使用general-template.php
. 该函数的输出是可定制的,但对我来说不够可定制。
我可以通过基本上在我的文件中重新实现该特定功能来实现我想做的所有事情,functions.php
但我犹豫是否这样做,因为它会在 Wordpress 更新时引入回归问题。wp_get_archives
执行所有较低级别的操作,例如构建数据库查询并缓存数据库结果。如果可以的话,我真的很想避免这样做。
对我开放的另一种方法是创建get_archives_link
过滤器,此时链接 HTML 已经格式化,我需要运行一堆正则表达式来理解它。这对我来说似乎完全倒退了,因为它会完全破坏性能。
这正是我想要的输出:
<li><a href="/year/01">JAN</a></li>
<li class="current"><a href="/year/02">FEB</a></li>
<li>MAR</li> <!--no blog entries this month-->
...
据我所见wp_get_archives
,有锚的硬编码文本:
$text = sprintf(__('%1$s %2$d'), $wp_locale->get_month($arcresult->month), $arcresult->year);
然后是添加没有帖子的月份的问题,我更愿意在不解析文本的情况下这样做。然后我需要添加当前类(当 URL 类似于 .../2009/12 时)。
我实际上有一个使用wp_get_archives
. 这是做事的方式吗?我是不是太担心什么了?
编辑我想真正的问题是可以为 Wordpress 主题编写 oen SQL 吗?如果是,那么这样做的最佳做法是什么。