Intereting Posts
Выход из системы с новым доменом в WP Multisite Получить пользовательские данные внутри настраиваемого плагина сборки Веб-сайт замедляется после импорта длинной базы данных Как скрыть несколько параметров настройки темы – тема TwentySeventeen Автоматическое сжатие эскизов в зависимости от размера Пользовательский параметр URl Автоматическое перемещение медиафайла в облако Показать сообщения, используя идентификаторы сообщений в массиве Прикрепите несколько настраиваемых сообщений к одному метаполе Пользовательское поле при добавлении нового сайта в многопользовательский сетевой WordPress Как отобразить родительскую категорию с ребром первого уровня в REST API Изображение продукта Woocommerce Любые идеи для включения «Больше тегов» с get_pages ($ args)? Могу ли я запустить add_action-hook внутри функции, которая получает данные через wp_ajax? Отображение сортировки по пользовательскому критерию

Как ограничить длину предыдущих / следующих сообщений в моей теме WordPress?

Я использую следующий код, чтобы показывать следующие / предыдущие сообщения в моей теме WordPress.

<?php previous_post_link('<span class="left">&larr; %link</span>'); next_post_link('<span class="right">%link &rarr;</span>'); ?> 

Он работает, но я хочу ограничить заголовок сообщения, который отображается в ссылке на определенную длину, потому что слишком большие ссылки не работают из-за пространства, которое у меня есть. И я хочу иметь стрелку внутри ссылки, чтобы она показывала ссылку и стрелку с тем же стилем. Возможно ли это и так?

Спасибо!

Вот небольшая кодировка, которая должна реализовать это для вас:

 <?php $max_length = 5; // set max character length here $next = get_next_post()->ID; $prev = get_previous_post()->ID; if( $prev ) { $title = get_the_title( $prev ); $link = get_the_permalink( $prev ); $post_name = mb_strlen( $title ) > $max_length ? mb_substr( $title, 0, $max_length ) . ' ..' : $title; ?> <span class="left"> <a href="<?php echo $link; ?>" rel="prev" title="<?php echo $title; ?>">&larr; <?php echo $post_name; ?></a> </span> <?php } if( $next ) { $title = get_the_title( $next ); $link = get_the_permalink( $next ); $post_name = mb_strlen( $title ) > $max_length ? mb_substr( $title, 0, $max_length ) . ' ..' : $title; ?> <span class="right"> <a href="<?php echo $link; ?>" rel="next" title="<?php echo $title; ?>"><?php echo $post_name; ?> &rarr;</a> </span> <?php } ?> 

Надеюсь, что это поможет в вашем шаблоне.

Изменить: небольшое исправление, так что это может работать с многобайтными символами. (mb_strlen – mb_substr)

Не может ли это сделать css?

 .nav_posts .title { display: inline-block; text-overflow: ellipsis; max-width: 30ex; white-space: nowrap; overflow: hidden; } <?php previous_post_link('<span class="nav_posts left">&larr; <span class="title">%link</span></span>'); next_post_link('<span class="nav_posts right"><span class="title">%link</span> &rarr;</span>'); ?> 

Оба из них должны get_adjacent_post_link() к функции get_adjacent_post_link() , которая передает результат через динамический фильтр {$adjacent}_post_link (где $adjacentprevious или next ).

Вы можете использовать этот фильтр для внесения любых изменений в конечный результат.