0

Модификация previous_post_link() и next_post_link() в WordPress

Владельцам и администраторам блогов на WordPress часто требуется изменить отображение ссылок на предыдущий и последующий посты. По сути, следует модифицировать результат отображения функций previous_post_link() и next_post_link().

Для начала напишем функцию-пример, которая модифицирует один единственный входной аргумент — HTML код ссылки. Для примера добавим CSS класс и сократим текст ссылки, если он превышает заданную длину:

/**
 * Modify function
 *
 * @param string HTML link
 */
function modify_post_link ($link) {
    // добавим CSS класс
    $link = str_replace('<a ', '<a class="nav-link" ', $link);
  
    // максимальное количество символов
    $max = 50;
  
    // выделим текст ссылки
    preg_match('/<a.*?>(.*?)<\/a>/uis', $link, $matches);
  
    // находим вхождение внутри тега ссылки — текст
    $title = $matches[1];
  
    // сократим, если длина больше указанной
    $new_title = mb_strlen($title) >= $max ? mb_substr($title, 0, $max - 3).'...' : $title;
  
    // возвращаем модифицированный HTML код ссылки
    return str_replace('>'.$title.'<', '>'.$new_title.'<', $link);
}

Continue Reading