Intereting Posts
Страница архивирования, показывающая неправильный месяц Поведение the_content () на attachment.php по сравнению с single.php Двадцать двенадцать виттов, принимающих пространство Ввод файлов возвращает значение null в массиве параметров темы Конфликт array_splice в цикле и запросе в виджетах wp_signon возвращает пользователя во всплывающем окне, но пользователь не вошел в систему родительская страница захватывает неправильный URL-адрес для дочерних страниц – get_page_uri ($ pageChild) image srcset возвращает false Как получить таксономию типа пользовательских сообщений «Edit_published_posts» и «edit_other_post» Как пользоваться английским и американским английским языком? Есть ли фильтр для редактирования html user-edit.php Миниатюра сообщения не отображается в области администрирования WP для пользовательского типа сообщения Как отказаться от функции, используемой в плагине? Как получить условия и сообщения, связанные с другим термином?

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

Для каждого сообщения я использую пользовательское поле 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) – это идентификатор сообщения.