Изменить ссылку Подробнее, чтобы показать полную статью в Wordpress - PullRequest
0 голосов
/ 24 сентября 2018

Я пытаюсь изменить функцию кнопки «Читать далее» в отрывке из поста.Вместо того, чтобы нажимать кнопку «Подробнее» на странице статьи, я бы хотел, чтобы она загружала оставшуюся часть статьи на страницу архива.

Это то, что у меня есть на моей странице функций:

function new_excerpt_more($more) {
       global $post;
    return '... <a href="'. get_permalink($post->ID) . '">Read more</a>';
}
add_filter('excerpt_more', 'new_excerpt_more');


function custom_excerpt_length( $length ) {
    return 250;
}
add_filter( 'excerpt_length', 'custom_excerpt_length', 999 );

Я знаю, что мне придется заменить get_permalink($post->ID) чем-то другим, но я не знаю, как это сделать.Любая помощь будет принята с благодарностью.

Ответы [ 2 ]

0 голосов
/ 25 сентября 2018

Вы можете сделать это в 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>
0 голосов
/ 25 сентября 2018

Вам нужно создать функцию JS для загрузки / замены текста в этом.Я бы использовал jQuery .load () , а в вашей функции что-то вроде:

$( "#archive-post-div" ).load( "url-from-permalink.html #the-content-div" );

Это один из способов сделать это.Вы также можете просто загрузить все статьи скрытыми и просто изменить видимость с помощью кнопки читать дальше .

Я бы уточнил, но не знаю, насколько вы знакомы с JS / jQuery или CSS вдругой, чтобы сделать это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...