Как отобразить отрывок из заголовка в ссылке на следующий пост WordPress

У меня проблемы с отображением отрывка из заголовка в ссылке на следующий пост.

Если символов в заголовке следующего сообщения больше 30, я бы просто хотел, чтобы он показывал «...»

Это код, который я использую для отрывков из заголовков.

 <?php short_title('...', 25); ?>

И это код, который я использую для ссылок на следующий пост

 <?php next_post_link( '<span class="pn-a">%link</span>', '<span class="pn-a">%title</span>' ) ?>

Функция короткого заголовка

function short_title($after = '', $length) {
$mytitle = get_the_title();
if ( strlen($mytitle) > $length ) {
$mytitle = substr($mytitle,0,$length);
echo $mytitle . $after;
} else {
echo $mytitle;
}

}

Любая помощь?

Спасибо


person user3648353    schedule 25.10.2014    source источник
comment
Повторяет ли функция short_title обрезанный заголовок?   -  person Bojan Petkovski    schedule 25.10.2014
comment
Да, это так. Что там делается до 25 символов.   -  person user3648353    schedule 25.10.2014
comment
Можете ли вы добавить функцию в свой ответ?   -  person Bojan Petkovski    schedule 25.10.2014
comment
готово... Заранее спасибо   -  person user3648353    schedule 25.10.2014
comment
Почему бы не передать заголовок в свою функцию вместо того, чтобы генерировать его внутри функции? Затем также верните результат, а не повторяйте его в функции.   -  person Rasclatt    schedule 25.10.2014


Ответы (1)


Вот ты где :)

Измените свою функцию следующим образом, удалите эхо и просто верните значение для заголовка.

function short_title_next_post($after = '', $length) {
    $next = get_adjacent_post(1, '', 0);
    $mytitle = $next->post_title;
    if ( strlen($mytitle) > $length ) {
        $mytitle = substr($mytitle,0,$length);
        return $mytitle . $after;
    } else {
        return $mytitle;
    }
}

А затем в next_post_link просто вызовите эту функцию

next_post_link( '<span class="pn-a">%link</span>', '<span class="pn-a">' . short_title_next_post('...', 25) . '</span>'  );

:)

person Bojan Petkovski    schedule 25.10.2014
comment
Спасибо, но теперь это не ссылка на следующий пост? Любая помощь в разрешении ссылки на href? Спасибо - person user3648353; 25.10.2014
comment
Спасибо, я забыл изменить функцию... Теперь работает :)! - person user3648353; 25.10.2014
comment
Рад, что смог помочь :) Теперь вы можете принять ответ, чтобы вопрос можно было закрыть :) - person Bojan Petkovski; 25.10.2014
comment
Привет, Боян, я только что заметил, что он не работает должным образом. По сути, этот код используется в заголовке текущего поста, а не в заголовке следующего поста. Любая помощь? Спасибо - person user3648353; 26.10.2014
comment
Я обновил функцию. Теперь он займет заголовок следующего сообщения, и я изменил имя на short_title_next_post(). :) - person Bojan Petkovski; 28.10.2014