Xóa thêm hoặc [văn bản] khỏi bài viết ngắn


8

Tôi sử dụng một chủ đề có giới hạn ký tự cho shortpost và hiển thị [...] ở cuối giới hạn ký tự.

Tôi muốn xóa cái này, vì vậy tôi tìm kiếm the_excerpt();và thay thế bằngthe_content();

Vấn đề giải quyết với nội dung bình thường nhưng vẫn có vấn đề với loại bài đăng hình ảnh và có <?php the_excerpt(); ?>khi tôi thay đổi bài viết ngắn này của tôi hoạt động như bài đăng đầy đủ và nó không liên quan đến độ dài của bài đăng.

Tôi cố gắng mở tất cả các tệp PHP trong chủ đề và tìm kiếm các từ khóa như: giới hạn, độ dài, đoạn trích để tìm đâu là mã xác định độ dài của shortpost thậm chí tìm kiếm "[...]" trong tất cả các tệp và ngôn ngữ nhưng tôi không biết nó đến từ đâu

Nhưng tất cả những gì tôi tìm thấy là một số dòng mã trong function.php

if ( ! function_exists( 'string_limit_words' ) ) :
function string_limit_words($str, $limit = 18 , $need_end = false) {
    $words = explode(' ', $str, ($limit + 1));
    if(count($words) > $limit) {
        array_pop($words);
        array_push($words,'...');
    }
    return implode(' ', $words);
}
endif;

Và khi tôi tăng 18 thì không có gì thay đổi!

Tôi phải tìm mã nào?

Câu trả lời:


19

Codex là bạn của bạn và nên là điểm dừng đầu tiên của bạn :-)

Các [...]được bổ sung bằng the_excerpt(). Có một bộ lọc được gọi là excerpt_morebộ lọc được bao gồm cụ thể để tùy chỉnh văn bản đọc thêm sau đoạn trích

Để loại bỏ [...]văn bản sau đoạn trích, bạn có thể làm như sau

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

cảm ơn vì đã trả lời mã của bạn hoạt động tốt để xóa [...], nhưng đoạn mã ngắn vẫn bị giới hạn và cắt từ sau một số ký tự tôi muốn hoạt động bình thường (mọi thứ trước khi đọc thêm thẻ hiển thị trên bài đăng ngắn của tôi)
Arioman

Một câu hỏi khác chỉ để tò mò, làm thế nào tôi có thể thay đổi [...] thành một số thứ khác chẳng hạn [thêm ...]
Arioman

Bạn nên đọc bài viết này . Tôi đã trình bày về tất cả mọi thứ trong bài viết đó. Hy vọng nó giúp :-). Remeber chấp nhận câu trả lời của tôi nếu nó giúp giải quyết vấn đề của bạn.
Pieter Goosen

điều này dường như chỉ loại bỏ các liên kết đọc thêm. Các [...]vẫn còn đó.
Jules

3

Như những người khác đã chỉ ra, sử dụng excerpt_moremóc lọc là cách đúng đắn.

Chỉ muốn thêm rằng bạn không phải viết một hàm trả về một chuỗi rỗng. WordPress có một vài chức năng được xây dựng để trả về true, false, zero, null, chuỗi rỗng hoặc mảng trống.

Trong trường hợp này, chúng ta cần __return_empty_opes ()

Bạn có thể thêm mã này vào plugin hoặc vào chức năng của chủ đề.php:

<?php 
// This will add a filter on `excerpt_more` that returns an empty string.
add_filter( 'excerpt_more', '__return_empty_string' ); 
?>

1

đó là công việc cho tôi

function change_excerpt( $text )
{
    $pos = strrpos( $text, '[');
    if ($pos === false)
    {
        return $text;
    }

    return rtrim (substr($text, 0, $pos) );
}
add_filter('get_the_excerpt', 'change_excerpt');

0

Bạn nên thêm cái này vào functions.php

    function custom_excerpt_more( $more ) {
    return '';//you can change this to whatever you want
}
add_filter( 'excerpt_more', 'custom_excerpt_more' );

Ngoài ra, việc sử dụng the_excerptcó lợi thế là tự động xóa nội dung và xóa tất cả hình ảnh và các thẻ HTML khác.

Bạn có thể đọc thêm ở đây

Nếu bạn cũng muốn sửa đổi độ dài của đoạn trích, bạn có thể thêm đoạn trích này vào functions.php:

function custom_excerpt_length( $length ) {
    return 20;//change the number for the length you want
}
add_filter( 'excerpt_length', 'custom_excerpt_length', 999 );

Bạn có thể đọc thêm về điều này ở đây


Những phiên bản nào bạn đang nhắm mục tiêu, đó là trước 2.9 :-)
Pieter Goosen

@PieterGoosen, tôi đoán sai rồi.
Tomás Cot

mã của bạn hoạt động tốt với việc thay đổi độ dài nhưng khi tôi loại bỏ [...] nó sẽ xấu khi một phần của đoạn văn bị thiếu, sẽ rất tuyệt nếu bằng cách nào đó phát hiện một đoạn thay vì chiều dài !! // một vấn đề khác với đoạn trích là về shortcodes, tôi không thể đặt trình phát video hoặc trình chiếu vào bài đăng ngắn của mình
Arioman

@Arioman, bạn có thể thay đổi [...] bằng một liên kết có nội dung "Tiếp tục đọc" hoặc bất cứ điều gì bạn muốn. Bây giờ, nếu bạn muốn có mã ngắn hoạt động, the_excerptkhông phải là thứ bạn đang tìm kiếm, bạn nên thêm nó vào câu hỏi, vì câu trả lời sẽ thay đổi.
Tomás Cot

@ TomásCot cảm ơn vì hướng dẫn tuyệt vời này. tôi đặt tất cả các mã (mã hoàn chỉnh) vào hàm.php của mình và xóa $ wpse_excerpt = dải_tags ($ wpse_excerpt, wpse_allowedtags ()); để chấp nhận tất cả các thẻ tôi sử dụng trình phát video trực tuyến để chèn video và nó tạo ra các mã ngắn như: [stream flv = http: //****/clip/shad.m4v embed = false share = false width = 640 height = 360 dock = true controlbar = over băng thông = high autostart = false responsive = 16: 9 /] nhưng tôi vẫn nhận được một văn bản: * Video: video của tôi thay vì hiển thị trình phát video của tôi trong shortpost, vấn đề của tôi là gì ??
Arioman

0

Cố gắng tạo một chức năng mới trong functions.php:

function custom_excerpt() {
 $text=preg_replace( "/\\[&hellip;\\]/",'place here whatever you want to replace',get_the_excerpt());
echo '<p>'.$text.'</p>';
}

Sau đó sử dụng chức năng mới trên trang của bạn.


0

'excerpt_more' là một hook WordPress. Nó trả về đoạn trích nội dung. Để xóa [...] sau văn bản trích dẫn, bạn có thể trả về khoảng trống như bên dưới hoặc các yêu cầu tùy chỉnh của bạn. Sử dụng mã này trên function.php

function custom_excerpt_more( $excerpt ) {
    return '';
}
add_filter( 'excerpt_more', 'custom_excerpt_more' );
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.