Как сделать сам отрывок записи ссылкой в wordpress?

Ссылка скопирована
1 ответ

В темах вордпресс всегда отдельно выдается кодом ссылка на пост. Имеется ли вариант в такой конструкции сделать, чтобы отрывок сам являлся ссылкой на пост без отображения кнопки "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>', ) ); ?>

Дополнительно:

Как сделать сам отрывок записи ссылкой в wordpress?

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 }

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Анна SEO Ответ

Да, отрывок можно сделать ссылкой на запись. Самый простой способ — обернуть вывод 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; ?>

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);
}

.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>';

$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, если ссылка визуально состоит только из короткого отрывка без заголовка. И не делайте вложенную ссылку, если вся карточка уже кликабельна через заголовок, картинку или кнопку. Лучше выбрать одну основную зону клика и сохранить нормальную навигацию с клавиатуры, чем оборачивать ссылками каждый текстовый элемент карточки.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно