3

我正在通过自定义 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 吗?如果是,那么这样做的最佳做法是什么。

4

1 回答 1

1

如果您functions.php在活动主题的文件中定义它,通常不会出现回归问题。

但是,在更改默认主题时,情况并非如此。如果您要通过上传整个 wordpress 源来升级 Wordpress,它将覆盖 functions.php。

要解决此问题,请复制包含默认主题的整个文件夹。在新副本中,编辑style.css第 2 行(主题名称)并将其更改为新的主题名称。

Theme Name: WordPress Default

Wordpress 现在将看到一个额外的主题,您可以根据自己的喜好对其进行编辑。

于 2010-01-12T11:30:32.923 回答