在不触及wordpress核心的情况下实现wp_get_archives修改的更好方法是什么?


What is a better way to implement wp_get_archives modification without touching the wordpress core?

我从昨天开始在Wordpress上为我的博客开发我的第一个主题或任何类型的开发,在完成了大部分基本的东西之后,我想创建一个存档页面。通过wp_get_archives函数实现的存档页面的默认输出是the_title(文章的)。

然而,我想显示存档文章以及它们各自的 post_date。格式似乎是硬编码在general_template.php (真的!!)但是我对WordPress的设计理念不熟悉,想进一步评论一下)

我通过直接修改wp-includes目录下的general_template.php文件来做到这一点。我更改了wp_get_archives &get_archives_link函数(主要代码更改是…)

*wp_get_archives() 
    ............
    $text = strip_tags( apply_filters( 'the_title', $result->post_title, $result->ID ) );
    $text .= "|||" . date('F j, Y', strtotime($result->post_date));
*get_archives_link() 
    ............
    elseif ('withdate_ms' == $format) {
        $text_pieces = explode("|||", $text);
        $link_html = "'t<li>$before<a href='$url'>{$text_pieces[0]}</a> &bull; {$text_pieces[1]} $after</li>'n";
    }

这达到了我想要做的。但是,我不是感觉这是好做法尝试直接改变核心wordpress文件(特别是对于这种琐碎的东西)。我是WP的新手,但我想肯定有wordpress的方法来实现这一点。我该如何在不触及核心的情况下实现这个修改?这种方法是否适用于对核心功能的其他更改(对于任何其他设置,如果我将来需要更改)?

wp_get_archives( )函数复制粘贴到主题的functions.php文件中,然后重命名它(以避免函数名称冲突),并将该函数用作通常使用wp_get_archives( )的任何地方的插入式替换。

确保复制了整个函数,并且该函数内部使用的所有其他函数都应该正常工作。

需要注意的一点是,如果wp_get_archives( )将来有任何更新,您将不得不将这些更改集成到您的新功能中,或者不进行这些更改,因为更新将对您的功能没有影响。