将活动课程添加到自定义帖子类型日期存档

问题描述

我正在使用一个插件按年份创建自定义帖子类型日期档案:

<?PHP 
    $args = array(
        'post_type' => 'unistused','type' => 'yearly','format' => 'anchor',);
    cptda_get_archives($args); 
?>

我还为永久链接生成了一种自定义格式,以便在单击年度存档时将其锚定到正确的部分:

//
add_filter ('get_archives_link',function ($link_html,$url,$text,$format,$before,$after) {
    if ('anchor' == $format) {
        $link_html = "<li class='year-archive'><a href='$url#dreams'>"
                   . "$text"
                   . '</a></li>';
    }
    return $link_html;
},10,6);

不幸的是,当查看存档页面时,自定义结构'anchor'并未将'active'类添加到永久链接结构中,并且我无法实现解决方案或尝试实现此目的。任何帮助将不胜感激。

解决方法

您可能需要在此自定义功能中自己添加它:

add_filter ('get_archives_link',function ($link_html,$url,$text,$format,$before,$after) {
    if ('anchor' == $format) {
        
        global $wp;
        $current_url = home_url( add_query_arg( array(),$wp->request ) );

        $active_classname =  $current_url === $url ? 'active' : '';

        $link_html = "<li class=\"year-archive\"><a href=\"$url#dreams\" class=\"$active_classname\">$text</a></li>";
    }
    return $link_html;
},10,6);