Как сделать сам отрывок записи ссылкой в wordpress?
В темах вордпресс всегда отдельно выдается кодом ссылка на пост. Имеется ли вариант в такой конструкции сделать, чтобы отрывок сам являлся ссылкой на пост без отображения кнопки "Continue reading"?
<?php if ( 'excerpt' === $post_content ) { the_excerpt(); } elseif ( 'content' === $post_content ) { the_content( sprintf( wp_kses( /* translators: %s: Name of current post. Only visible to screen readers */ __( 'Continue reading<span class="screen-reader-text"> "%s"</span>', 'zakra' ), array( 'span' => array( 'class' => array(), ), ) ), get_the_title() ) ); } wp_link_pages( array( 'before' => '<div class="page-links">' . esc_html__( 'Pages:', 'zakra' ), 'after' => '</div>', ) ); ?> |
<?php if ( 'excerpt' === $post_content ) { the_excerpt(); } elseif ( 'content' === $post_content ) { the_content( sprintf( wp_kses( /* translators: %s: Name of current post. Only visible to screen readers */ __( 'Continue reading<span class="screen-reader-text"> "%s"</span>', 'zakra' ), array( 'span' => array( 'class' => array(), ), ) ), get_the_title() ) ); } wp_link_pages( array( 'before' => '<div class="page-links">' . esc_html__( 'Pages:', 'zakra' ), 'after' => '</div>', ) ); ?>
Дополнительно:
if ( $post_content === 'excerpt' ) { ?> <a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>"><?php the_excerpt(); ?></a> <?php } |
if ( $post_content === 'excerpt' ) { ?> <a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>"><?php the_excerpt(); ?></a> <?php }
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос

Да, отрывок можно сделать ссылкой на запись. Самый простой способ — обернуть вывод
the_excerpt()в тегa. Но важно следить, чтобы внутри отрывка не было других ссылок, иначе получится вложенная ссылка, а это невалидный HTML.Для стандартного excerpt:
if ($post_content === 'excerpt') : ?> <a class="entry-excerpt-link" href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>"> <?php the_excerpt(); ?> </a> <?php endif; ?>
CSS:
.entry-excerpt-link { display: block; color: inherit; text-decoration: none; } .entry-excerpt-link:hover { color: var(--accent-color, #0b63f6); }
Если
the_excerpt()выводитp, внутри ссылки это допустимо в HTML5, но иногда темы добавляют туда кнопку “Continue reading”. Тогда лучше получить чистый excerpt строкой:$excerpt = get_the_excerpt(); echo '<a class="entry-excerpt-link" href="' . esc_url(get_permalink()) . '">'; echo wp_kses_post(wpautop($excerpt)); echo '</a>';
Если в отрывке могут быть ссылки, лучше не делать весь отрывок ссылкой. Вместо этого можно сделать кликабельной всю карточку через JS или добавить абсолютную ссылку поверх карточки, но там тоже нужно аккуратно обойти интерактивные элементы.
Итог: технически обернуть excerpt в ссылку можно. Для чистого текста это нормально. Если в excerpt есть HTML и ссылки, безопаснее оставить отдельную кнопку или кликабельную карточку с продуманной разметкой.
Если цель — убрать кнопку “Continue reading”, её можно отключить отдельно, а не обязательно делать ссылкой весь текст. Например, изменить аргумент
the_content()или фильтр read more. Тогда пользователь всё равно сможет перейти по заголовку или карточке, а HTML останется проще и безопаснее.Для доступности добавьте понятный
aria-label, если ссылка визуально состоит только из короткого отрывка без заголовка. И не делайте вложенную ссылку, если вся карточка уже кликабельна через заголовок, картинку или кнопку. Лучше выбрать одну основную зону клика и сохранить нормальную навигацию с клавиатуры, чем оборачивать ссылками каждый текстовый элемент карточки.