WordPress get_calendar()过滤器更改HTML输出

时间:2020-03-03 15:41:59

标签: wordpress

默认情况下,WordPress附带了一个Calendar小部件,您可以使用该小部件显示带有帖子的日期的日历。我想过滤此小部件的HTML输出以自定义其外观。具体来说,该小部件以以下格式在日历底部显示指向上个月和下个月的链接:

«1月2月»

这是我要更改的HTML。

我尝试过的东西

如果您在WordPress中查看wp-includes/general-template.php文件,则有一个名为get_calendar()的函数,其中包含我希望更改的HTML。它还具有一个过滤器挂钩,用于过滤函数底部的HTML输出。

如果使用以下代码,则可以自定义输出以删除«和»,并用FontAwesome中的图标替换它们。这没有问题。

function custom_calendar_output( $calendar_output ) {

    $search = array( '«', '»' );
    $replace = array( '<i class="far fa-arrow-alt-circle-left"></i>', '<i class="far fa-arrow-alt-circle-right"></i>' );
    $cust_calendar_output = str_replace( $search, $replace, $calendar_output );

    return $cust_calendar_output;
}
add_filter( 'get_calendar', 'custom_calendar_output' );

我遇到的麻烦

我还想删除月份文本和默认箭头。因此,与其将其读取为:«Jan,它只会显示FontAwesome中的图标。随着用户在过去几个月中的循环,月份文本也会发生变化(例如1月,2月,3月)。

如何删除默认箭头和月份文本,以自定义图标替换它?

我已阅读到我可能需要在正则表达式中使用preg_replace,但似乎无法正常工作。我还读到使用正则表达式会消耗大量的开销。有没有更清洁的方法可以做到这一点?

0 个答案:

没有答案