Поддержка Проблемы и решения избавиться от «прыжка» «Читать дальше»

  • Только не спешите сделать замечание, _ Воспользуйтесь поиском, чтобы посмотреть, не решал ли кто-нибудь похожую задачу.
    Я воспользовался поиском, нашел куча решении , но ни одно не помогло , начинаем по порядку:
    1. добавил в файл functions.php темы код:

    //удаление #more в ссылках на полную статью start
    function remove_more($link) {
        $offset = strpos($link, '#more-');
        if ($offset) {$end = strpos($link, '"',$offset);}
        if ($end) {$link = substr_replace($link, '', $offset, $end-$offset);}
        $link = '' . $link . '
    ';
        return $link;
    }
    add_filter('the_content_more_link', 'remove_more');
    //удаление #more в ссылках на полную статью end

    Результат равна нулю !
    2. Также не помог добавление такого кода:

    function remove_more_link_scroll( $link ) {
    	$link = preg_replace( '|#more-[0-9]+|', '', $link );
    	return $link;
    }
    add_filter( 'the_content_more_link', 'remove_more_link_scroll' );

    3. И это выражение не дает никаких результатов:

    function remove_more_tags($link) {
    $offset = strpos($link, '#more-');
    if ($offset) {
    $end = strpos($link, '"',$offset);
    }
    if ($end) {
    $link = substr_replace($link, '', $offset, $end-$offset);
    }
    return $link;
    }
    add_filter('the_content_more_link', 'remove_more_tags');
    ?>

    4. Даже изменение в ядре в файле post-template.php строчку:

    $output .= apply_filters( 'the_content_more_link', ' <a>ID}\" class=\"more-link\">$more_link_text</a>", $more_link_text );
    заменил «#more-{$post->ID}\» на «\».
    К сожалению и этот метод не помог .
    5. Не нашелся ни одного плагина выполняющим такую задачу
    6.Безрезультатно даже вставки кода

    add_filter( 'the_content_more_link', function ( $link ) {
        return preg_replace( '/#more-\d+/', '', $link );
    });

    Страница, с которой нужна помощь: [войдите, чтобы увидеть ссылку]

Просмотр 7 ответов — с 1 по 7 (всего 7)
  • Модератор Yuri

    (@yube)

    но ни одно не помогло

    Потому что тема делает ссылки с #more сама, без использования функций ядра. Раньше я это только предполагал, теперь уверен на 99%. Ищите в файлах темы #more-. Ключик к решению там.

    я это только предполагал, теперь уверен на 99%. Ищите в файлах темы #more-. Ключик к решению там.

    Если честно, я тоже .
    Пока нашел в одном файле

    у меня в родительской теме в файле theme-functions.php нашел такой код:

    if ( ! function_exists( 'generate_show_excerpt' ) ) {
    	/**
    	 * Figure out if we should show the blog excerpts or full posts
    	 * @since 1.3.15
    	 */
    	function generate_show_excerpt() {
    		global $post;
    
    		// Check to see if the more tag is being used.
    		$more_tag = apply_filters( 'generate_more_tag', strpos( $post->post_content, '<!--more-->' ) );
    
    		$format = ( false !== get_post_format() ) ? get_post_format() : 'standard';
    
    		$show_excerpt = ( 'excerpt' === generate_get_option( 'post_content' ) ) ? true : false;
    
    		$show_excerpt = ( 'standard' !== $format ) ? false : $show_excerpt;
    
    		$show_excerpt = ( $more_tag ) ? false : $show_excerpt;
    
    		$show_excerpt = ( is_search() ) ? true : $show_excerpt;
    
    		return apply_filters( 'generate_show_excerpt', $show_excerpt );
    	}
    }

    еще нашел в файле post-meta.php

    if ( ! function_exists( 'generate_content_more' ) ) {
    	add_filter( 'the_content_more_link', 'generate_content_more' );
    	/**
    	 * Prints the read more HTML to post content using the more tag.
    	 *
    	 * @since 0.1
    	 *
    	 * @param string $more The string shown within the more link.
    	 * @return string The HTML for the more link
    	 */
    	function generate_content_more( $more ) {
    		return apply_filters( 'generate_content_more_link_output', sprintf( '<p class="read-more-container"><a title="%1$s" class="read-more content-read-more" href="%2$s">%3$s%4$s</a></p>',
    			the_title_attribute( 'echo=0' ),
    			esc_url( get_permalink( get_the_ID() ) . apply_filters( 'generate_more_jump','#more-' . get_the_ID() ) ),
    			__( 'Read more', 'generatepress' ),
    			'<span class="screen-reader-text">' . get_the_title() . '</span>'
    		) );
    	}
    }
    • Ответ изменён 3 года, 10 месяцев назад пользователем rianovost.
    Модератор Yuri

    (@yube)

    Ищите #more-.
    Чертовки неудобно читать тут код (впрочем, в Правилах на этот случай есть рекомендация)
    Попробуйте

    
    add_filter('generate_more_jump', function(){return '';});
    
    • Ответ изменён 3 года, 10 месяцев назад пользователем Yuri.
    • Ответ изменён 3 года, 10 месяцев назад пользователем Yuri.

    Чертовки неудобно читать тут

    сори)) Я исправил, оставил только функцию, где причём в единственном месте присутствует именно #more

    Попробуйте

    add_filter(‘generate_more_jump’, function(){return »;});

    Тоже не помог

    Вот это другое дело! В очередной раз вы Юрий,выручали меня!
    Вставил в конец файла functions.php дочерней темы ваш код и наконец-то избавился от прыжка анкора тега «далее»

    //удаление #more в ссылках на полную статью start
    add_filter('generate_more_jump', function(){return '';});
    //удаление #more в ссылках на полную статью end

    Стоит отметить, что о помощи просил во всех площадках , но только он разбирался. Если бы я был директором вордпресса , наградил бы ему ! Но статейку буду готовить на выпуск о высококвалифицированном специалисте! Еще раз спасибо! Отмечу вопрос решенным!

Просмотр 7 ответов — с 1 по 7 (всего 7)
  • Тема «избавиться от «прыжка» «Читать дальше»» закрыта для новых ответов.