По умолчанию WordPress поставляется с виджетом «Календарь», который можно использовать для отображения календаря с днями, в которых есть сообщения. Я хотел бы отфильтровать вывод HTML этого виджета, чтобы настроить его внешний вид. В частности, виджет отображает ссылки на предыдущие и последующие месяцы в нижней части календаря в следующем формате:
«Янв фев»
Это значение HTML, которое я хотел бы изменить.
Что я пробовал
Если вы посмотрите на файл wp-includes/general-template.php
в WordPress, есть функция под названием get_calendar()
, которая содержит HTML I w * sh для изменения. Он также имеет ловушку фильтра для фильтрации вывода 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' );
С чем у меня проблемы
Я также хотел бы удалить текст месяца и стрелку по умолчанию. Поэтому вместо того, чтобы читать его как: «Ян, он будет просто отображать значок из FontAwesome. Текст месяца меняется (например, январь, февраль, март) по мере того, как пользователь циклически повторяет последние месяцы.
Как я могу удалить как стрелку по умолчанию, так и текст месяца, чтобы заменить его пользовательским значком?
Я прочитал, возможно, мне нужно использовать preg_replace
с регулярным выражением, но я не могу заставить его работать. также прочитайте, что использование регулярных выражений требует много накладных расходов. Есть ли более чистый способ сделать это?