Làm cách nào tôi có thể tạo một liên kết Đọc nhiều hơn bằng cách sử dụng the_excerpt () trên trang đầu tĩnh?


8

Tôi đang làm việc trên một trang web sử dụng trang đầu tĩnh. Nó cũng hiển thị bài viết blog gần đây nhất. Điều này đã đạt được bằng cách tạo một trang và sử dụng một mẫu trang tùy chỉnh.

Đôi khi, bài đăng trên blog quá dài, vì vậy tôi muốn sử dụng the_excerpt để tự động rút ngắn nó mà không cần thêm thẻ.

Càng xa càng tốt. Nhưng, the_excerpt không thực sự tạo ra một liên kết "đọc thêm". Đây là một vấn đề khá phổ biến, vì vậy tôi đã thêm:

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

vào tập tin tests.php của tôi.

Tôi thực sự đã sử dụng mã này mà không gặp vấn đề gì trên một trang web khác, nhưng vì lý do nào, nó không hoạt động trong trường hợp này. Dự đoán ban đầu của tôi là bởi vì nó được gọi trên một trang tĩnh.

Trang web này là http://stuandjessproductions.com . Chủ đề là Trung tâm của QODE và tôi đang sử dụng một chủ đề con tùy chỉnh.

BIÊN TẬP

Thêm mã từ trang mẫu, theo yêu cầu. Đây không phải là toàn bộ trang, mà chỉ là bit có liên quan cho bài đăng tin tức:

<?php $query = "showposts=1&orderby='date'"; query_posts($query);?>
<?php if(have_posts()) : while ( have_posts() ) : the_post(); ?>
    <a href="<?php the_permalink();?>"><?php the_post_thumbnail('home'); ?></a>
    <div class="overlay">Latest News</div>
    <h4><a href="<?php the_permalink();?>"><?php the_title(); ?></a></h4>
    <?php the_excerpt(); ?>
<?php endwhile; ?>
<?php endif; ?>

mã của mẫu trang là gì?
Michael

Tôi đã thêm một số mã từ trang mẫu (bit có liên quan). Nếu bạn muốn xem toàn bộ, tôi có thể đăng nó ... nhưng nó hơi dài.
triệu tập

Câu trả lời:


14

khi bạn điền vào ô Trích dẫn với bất kỳ văn bản nào trên trang chỉnh sửa bài đăng, the_excerpt()chức năng không thêm bất kỳ đọc thêm hoặc ... ở cuối mô tả ngắn. Đọc thêm chỉ được bao gồm nếu Excerpt được đặt trống và đây không phải là một lỗi, đó là một tính năng.

Bây giờ giải pháp là tránh excerpt_morebộ lọc trả về đọc thêm và sử dụng the_excerpthook. Nhưng excerpt_morenên đặt trống để đảm bảo đọc gấp đôi không được hiển thị. Vì vậy, mã bạn cần -

function new_excerpt_more($more) {
    return '';
}
add_filter('excerpt_more', 'new_excerpt_more', 21 );

function the_excerpt_more_link( $excerpt ){
    $post = get_post();
    $excerpt .= '... <a href="'. get_permalink($post->ID) . '">continue reading</a>.';
    return $excerpt;
}
add_filter( 'the_excerpt', 'the_excerpt_more_link', 21 );

Mã ở trên có thể đi đến tập tin chức năng chủ đề của bạn.


Tôi chưa thêm bất cứ điều gì vào trường văn bản Trích dẫn trên bài đăng, tôi cũng không có ý định đó. Như tôi đã nói, ý tưởng là làm cho mọi thứ bảo trì càng thấp càng tốt cho khách hàng. Các mã hiện không cắt ngắn đường bưu điện đến 55 từ, hoặc bất cứ điều gì mặc định là, và cho biết thêm ellipsis. Vấn đề là phương pháp bình thường của tôi để biến dấu chấm lửng đó thành liên kết "Đọc thêm" dường như không hoạt động.
triệu tập

Vì vậy, tôi đã thử mã của bạn, và nó dường như hoạt động. Vấn đề duy nhất là, tôi nhận được một dấu chấm lửng kép. Nó trực tiếp trên stuandjessproductions.com ngay bây giờ, nếu bạn muốn xem. Bạn có bất cứ ý tưởng?
triệu tập

Tôi nên thêm rằng tôi đã loại bỏ mã gốc của mình khỏi Hàm.php.
triệu tập

Tôi đã đánh dấu câu hỏi này như một câu trả lời, nhưng giải pháp là cho đến khi tiêm hai thẻ "đọc thêm". Tôi vừa xóa dấu chấm lửng khỏi thẻ thứ hai, hoạt động với tôi, nhưng nó không thực sự hoàn hảo.
triệu tập

1
@NavarnBhardwaj - 21 là ưu tiên bộ lọc ở đây. Ở đó bạn có thể có bất kỳ số dương nào nhiều hơn 0.
Shazzad
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.