Intereting Posts
comment_form () генерирует неправильный URL-адрес действия Как определить собственное семейство шрифтов для блога WordPress, которое не повлияет на весь сайт Как отобразить процент применяемого налога в woocommerce ACF sdd настраиваемые поля для категорий и отображения w3 Общее кэширование кэширования – Запрошенный URI отклонен Включение короткого кода для пользовательских виджетов WordPress Как показать название страницы в блоге WordPress сайта Загрузка Ajax плагина, который также использует Ajax Создать подстраницу – список родительских фильтров Как назначить дополнительную / дополнительную / вторую пользовательскую роль нескольким пользователям (определенной роли пользователя) Как решить проблему с использованием Javascript AJAX для WPJ Как удалить стандартную ссылку «Войти» Изображения Retina – настраиваемый синтаксис для вставки изображений в пост-контент Установить настраиваемую панель инструментов для экземпляра ACF TinyMCE (через ajax?) Получить идентификатор строки из базы данных одним нажатием кнопки

Могу ли я использовать как пользовательский отрывок, так и отрезанный отрывок?

Для каждого сообщения я использую пользовательское поле excerpt для записи пользовательского отрывка (максимум 180 символов) для каждого из моих сообщений, который я использую в качестве мета-описания моего сообщения для SEO.

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

Можно ли иметь более длинный отрывок, показываемый на страницах категорий и индексов, но сохраните мою пользовательскую выдержку в качестве мета-описания каждого сообщения?

Кстати, у большинства моих сообщений есть специально размещенный тег «read more», который теперь игнорируется, так как у меня есть пользовательский отрывок.

Solutions Collecting From Web of "Могу ли я использовать как пользовательский отрывок, так и отрезанный отрывок?"

Мы можем попытаться отфильтровать выдержку через фильтр get_the_excerpt . По умолчанию, если у нас есть ручная выдержка, будет использоваться ручная выдержка, а не автоматически созданная выдержка, созданная wp_trim_excerpt() .

Мы можем изменить это поведение. Мы будем делать это, когда мы находимся внутри основного запроса ( in_the_loop() ), мы вернем результат из функции wp_trim_excerpt() . Таким образом, мы сохраняем все фильтры по умолчанию. Всякий раз, когда мы находимся вне основного запроса, мы можем вернуть созданную вручную выдержку, если она существует, в противном случае нормальная выдержка

 add_filter( 'get_the_excerpt', function( $text ) { if ( in_the_loop() ) return wp_trim_excerpt(); return $text; }); 

Это функция, которую я использую все время для создания пользовательской выдержки:

 function custom_excerpt( $limit, $post_id=NULL ) { if ( $post_id == NULL ) { $the_excerpt = get_the_excerpt(); } else { $the_excerpt = get_the_excerpt($post_id); } $excerpt = explode( ' ', $the_excerpt, $limit ); if ( count( $excerpt ) >= $limit ) { array_pop($excerpt); $excerpt = implode( " ",$excerpt ) . '...'; } else { $excerpt = implode( " ",$excerpt ); } $excerpt = preg_replace( '`\[[^\]]*\]`', '', $excerpt ); return $excerpt; } 

Затем вы будете использовать его так же в своих шаблонах тем, где вы хотите использовать свою пользовательскую длину выдержки

 echo custom_excerpt(50,1); 

или без определения идентификатора сообщения

 echo custom_excerpt(50,NULL); 

Где первое число (50) – это длина выдержки, а второе число (1) – это идентификатор сообщения.