Как изменить текст и даже HTML ссылки «Читать далее»

Вы наверное знаете, что можно в любом месте обрезать пост и в конце анонса поставить ссылку на его полную версию при помощи кнопок в редакторе в админке или же блока «Тег Далее» в Gutenberg. В этом урока я покажу несколько способов, как изменить текст этой ссылки.

Кстати, про то, как формируются отрывки постов для страниц блога и категорий, я рассказывал в этом видеоуроке.

Классический редактор

Это было когда-то очень давно 🦖, ещё до прихода Gutenberg. Я даже решил оставить те самые старые скриншоты, когда я впервые записывал этот урок.

Визуальный редактор:

кнопка далее в визуальном редакторе
Кнопка «Читать далее» в старом редакторе TinyMCE

HTML-редактор:

кнопка далее в HTML-редакторе
Кнопка more в HTML-редакторе поста

Так вот, неважно какой кнопкой вы воспользовались, в HTML-редакторе на месте обрезки поста появится тег: <!--more-->.

И в таких случаях, для того, чтобы изменить текст ссылки «Читать далее», нам достаточно изменить этот тег, например на <!--more продолжить чтение--> или <!--more перейти&rarr;--> или что угодно другое.

В редакторе Gutenberg

А тут совсем всё легко, правда в первый раз может быть не совсем очевидно, поэтому записал для вас это видео:

Фильтр the_content_more_link находится внутри функции get_the_content() и про него я уже рассказывал ранее.

Тем не менее вот простейший пример изменения текста ссылки:

add_filter( 'the_content_more_link', 'true_new_more_text', 10, 2 );
 
function true_new_more_text( $more_link, $more_link_text ) {
 
	$new = "продолжить чтение..."; // вписываем своё
	return str_replace( $more_link_text, $new, $more_link );
}

А тут мы полностью перезаписываем её HTML:

add_filter('the_content_more_link', 'true_more_button_not_a_link' );
 
function true_more_button_not_a_link( $more_link ) {
 
	return '<button class="readmorebtn" onclick="' .
        esc_attr('window.location="' . get_permalink() . '"') .
        '">Далее</button>';
 
}

Не знаете, куда вставлять код?

the_content( 'Продолжить чтение..' );

или для get_the_content():

$content = get_the_content( 'Продолжить чтение..' );

Миша

Недавно я осознал, что моя миссия – способствовать распространению WordPress. Ведь WordPress – это лучший движок для разработки сайтов – как для тех, кто готов использовать заложенную структуру этой CMS, так и для тех, кто предпочитает headless решения.

Сам же я впервые познакомился с WordPress в 2009 году. Организатор WordCamp. Преподаватель в школах Epic Skills и LoftSchool.

Если вам нужна помощь с вашим сайтом или может даже разработка с нуля на WordPress / WooCommerce — пишите. Я и моя команда сделаем вам всё на лучшем уровне.

Комментарии — 18

Оставить комментарий

Если вы хотите добавить код, не забудьте обернуть его в <pre lang="php"></pre>, если же код – меньше одной строчки, то можно и в <code></code>.