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

0

Position relative, overflow, IE 7 bug

Идея проста: есть некий элемент DIV с полосой прокрутки и большим количеством элементов внутри. В моём случае использовалась своя прокрутка через JS. Всё прекрасно работает в FireFox, Opera и даже в IE8, вот только IE7 подвёл.

Суть проблемы: при попытке прокрутки, элементы успешно передвигаются, но некоторые их «запчасти остаются на месте». Ослику не нравится свойство движимых элементов:

position:relative;

И таком и сяком, а не выходит каменный цветок… Как оказалось проблема решается просто: нужно поставить такое же свойство relative на родительский элемент с прокруткой.