Intereting Posts
Повторное подключение непривязанных изображений Как я могу убедиться, что мой плагин работает только на страницах подробностей статьи? Объединение миниатюр сообщений с ползунком Nivo Недопустимое несоответствие идентификатора автора из базы данных Отзывы клиентов WP – короткие коды Какие настройки / параметры сохраняются на основе темы и как это влияет на переключение тем? Как инициализировать что-либо в модульном тесте перед вызовом init? Виджет WordPress Default Loop, разбиение на страницы на пользовательский URL Как удалить страницу после листинга для персонализированного типа сообщения Получение имени тега действия в действии Ограничить доступ к xmlrpc.php WordPress (3.9.1) Разрешения MultiSite. Отвечает ли ответ? Публикация сообщения об ошибке Изменить wp-login.php? Проблема с защитой паролем .htaccess и многофункциональным магазином Организуйте сайт WordPress, чтобы он мог поддерживать огромную базу данных

Читать больше тегов появляется на КАЖДОЙ почте

Недавно я прочитал эту замечательную запись, и мне нужна помощь в выяснении того, как отображать ссылку «Читать дальше» только на сообщениях с большим количеством контента для отображения. Как бы то ни было, в настоящее время он отображается на каждом посту, даже если это короткий однострочный. Любая помощь была бы оценена, я в основном просто копировал / вставлял код Питера с незначительным дополнением:

// Begin Excerpt Code function wpse_allowedtags() { // Add custom tags to this string return '<script>,<style>,<br>,<em>,<i>,<ul>,<ol>,<li>,<a>,<p>,<img>,<video>,<audio>'; } if ( ! function_exists( 'wpse_custom_wp_trim_excerpt' ) ) : function wpse_custom_wp_trim_excerpt($wpse_excerpt) { $raw_excerpt = $wpse_excerpt; if ( '' == $wpse_excerpt ) { $wpse_excerpt = get_the_content(''); $wpse_excerpt = strip_shortcodes( $wpse_excerpt ); $wpse_excerpt = apply_filters('the_content', $wpse_excerpt); $wpse_excerpt = str_replace(']]>', ']]&gt;', $wpse_excerpt); $wpse_excerpt = strip_tags($wpse_excerpt, wpse_allowedtags()); /*IF you need to allow just certain tags. Delete if all tags are allowed */ //Set the excerpt word count and only break after sentence is complete. $excerpt_word_count = 75; $excerpt_length = apply_filters('excerpt_length', $excerpt_word_count); $tokens = array(); $excerptOutput = ''; $count = 0; // Divide the string into tokens; HTML tags, or words, followed by any whitespace preg_match_all('/(<[^>]+>|[^<>\s]+)\s*/u', $wpse_excerpt, $tokens); foreach ($tokens[0] as $token) { if ($count >= $excerpt_length && preg_match('/[\,\;\?\.\!]\s*$/uS', $token)) { // Limit reached, continue until , ; ? . or ! occur at the end $excerptOutput .= trim($token); break; } // Add words to complete sentence $count++; // Append what's left of the token $excerptOutput .= $token; } $wpse_excerpt = trim(force_balance_tags($excerptOutput)); $excerpt_end = ' <a href="'. esc_url( get_permalink() ) . '">' . '&nbsp;&raquo;&nbsp;' . sprintf(__( 'Read more about: %s &nbsp;&raquo;', 'wpse' ), get_the_title()) . '</a>'; $excerpt_more = apply_filters('excerpt_more', ' ' . $excerpt_end); //$pos = strrpos($wpse_excerpt, '</'); //if ($pos !== false) // Inside last HTML tag //$wpse_excerpt = substr_replace($wpse_excerpt, $excerpt_end, $pos, 0); /* Add read more next to last word */ //else // After the content $wpse_excerpt .= $excerpt_more; /*Add read more in new paragraph */ return $wpse_excerpt; } return apply_filters('wpse_custom_wp_trim_excerpt', $wpse_excerpt, $raw_excerpt); } endif; remove_filter('get_the_excerpt', 'wp_trim_excerpt'); add_filter('get_the_excerpt', 'wpse_custom_wp_trim_excerpt'); // Replaces the excerpt "more" text by a link function new_excerpt_more($more) { global $post; return '<br /><br /><a class="moretag btn-lg" href="'. get_permalink($post->ID) . '"> Read more</a>'; } add_filter('excerpt_more', 'new_excerpt_more'); // End Excerpt Code 

На самом деле мне никогда не приходилось добавлять этот раздел в мой ответ, на который вы ссылаетесь. Чтобы удалить ссылку с дополнительной ссылки из выдержки довольно просто, вам просто нужно сравнить $count с $excerpt_length . $count всегда будет между 0 и значением, назначенным $excerpt_length . Итак, что мы хотим сделать здесь, это добавить ссылку read more в условие, которое гласит, что если $count меньше $excerpt_length , мы не должны отображать больше

Чтобы поместить все в код, вам просто нужно заменить следующий раздел

 $excerpt_end = ' <a href="'. esc_url( get_permalink() ) . '">' . '&nbsp;&raquo;&nbsp;' . sprintf(__( 'Read more about: %s &nbsp;&raquo;', 'wpse' ), get_the_title()) . '</a>'; $excerpt_more = apply_filters('excerpt_more', ' ' . $excerpt_end); //$pos = strrpos($wpse_excerpt, '</'); //if ($pos !== false) // Inside last HTML tag //$wpse_excerpt = substr_replace($wpse_excerpt, $excerpt_end, $pos, 0); /* Add read more next to last word */ //else // After the content $wpse_excerpt .= $excerpt_more; /*Add read more in new paragraph */ 

с

 if ( $count >= $excerpt_word_count ) { $excerpt_end = ' <a href="'. esc_url( get_permalink() ) . '">' . '&nbsp;&raquo;&nbsp;' . sprintf(__( 'Read more about: %s &nbsp;&raquo;', 'wpse' ), get_the_title()) . '</a>'; $excerpt_more = apply_filters('excerpt_more', ' ' . $excerpt_end); //$pos = strrpos($wpse_excerpt, '</'); //if ($pos !== false) // Inside last HTML tag //$wpse_excerpt = substr_replace($wpse_excerpt, $excerpt_end, $pos, 0); /* Add read more next to last word */ //else // After the content $wpse_excerpt .= $excerpt_more; /*Add read more in new paragraph */ }