Как ограничить максимальное количество символов в отображаемом заголовке

Я следую этому руководству – « Показывать свои популярные сообщения в WordPress без плагина » и хотите ограничить максимальное количество символов в отображаемом заголовке. Кроме того, почему миниатюра, время от времени, меньше, чем число, которое я определяю в php?

сначала добавьте эту функцию в файл functions.php

 function max_title_length($title){ $max = 20; return substr( $title, 0, $max ). " …"; } 

то перед циклом связанного кода добавьте эту строку, чтобы перехватить указанную выше функцию:

 add_filter( 'the_title', 'max_title_length'); 

и после этого цикла удалите этот фильтр:

 remove_filter( 'the_title', 'max_title_length'); 

и просто измените $max = 20; к тому, что вы хотите.

Я улучшил @Bainternet-ответ только для отображения ... когда заголовок длиннее $max :

 function max_title_length( $title ) { $max = 30; if( strlen( $title ) > $max ) { return substr( $title, 0, $max ). " …"; } else { return $title; } } 

Затем вы можете сделать так:

 add_filter( 'the_title', 'max_title_length'); 

Вы можете использовать этот бит, чтобы ограничить количество отображаемых символов и добавить многоточие.

В этом конкретном примере я установил его для прослушивания с 38 символами и отображал только многоточие, если заголовок был передан в эфир. И независимо от длины, отобразите полный заголовок на странице single_post.

 <?php //assign the title to a variable $the_title = esc_attr ( the_title_attribute ( 'echo=0' ) ); //specify our desired max character count $max_length = 38; //strlen gets the length of the string $title_length = strlen ( $the_title ); // check if the length of the string is greater than our assigned max length if ( $title_length > $max_length ) { // if it is display a substring of the title from the // first character to the 38th character and append ... $title_excerpt = substr ( $the_title, 0, $max_length ) . '...'; } else { // otherwise just return the_title() $title_excerpt = $the_title; } ?> <h1 class="entry-title"> <?php if ( is_single () ) { // If article page the_title (); } else { // If homepage ?> <a href="<?php the_permalink (); ?>" title="<?php echo esc_attr ( the_title_attribute ( 'echo=0' ) ); ?>" rel="bookmark"><?php echo $title_excerpt; ?></a> <?php } ?> </h1>