Вы можете сделать это в jQuery.Хитрость заключается в том, чтобы скрыть div отрывка и показать полное содержимое div после щелчка по ссылке.
Редактирование вашего functions.php
<?php
function new_excerpt_more($more) {
global $post;
return '... <a class="reveal-full-content" action-id ="' . $post->ID .'" href="#">Read more</a>';
}
add_filter('excerpt_more', 'new_excerpt_more');
Редактирование страницы цикла (index.php, архив.php и т. д.)
<div class="wrap">
<div id="primary" class="content-area">
<main id="main" class="site-main" role="main">
<?php
/* Start the Loop */
while ( have_posts() ) : the_post();
?>
<article id="post-<?php the_ID(); ?>" <?php post_class( 'post' ); ?>>
<div class="post-content">
<div class="excerpt-content" action-id="<?php the_ID(); ?>">
<?php the_excerpt(); ?>
</div>
<div class="full-content" action-id="<?php the_ID(); ?>" style="display: none;">
<?php the_content(); ?>
</div>
</div>
</article>
<?php
endwhile; // End of the loop.
?>
</main><!-- #main -->
</div><!-- #primary -->
<?php get_sidebar(); ?>
И, наконец, вы ставите в очередь этот скрипт или подключаете его к себе wp_footer
<script type="text/javascript">
$(document).ready(function() {
$('a.reveal-full-content').on('click', function() {
var $postID = $(this).attr('action-id');
$('.excerpt-content[action-id="'+$postID+'"]').css('display', 'none');
$('.full-content[action-id="'+$postID+'"]').css('display', 'block');
});
})
</script>