Ini kode kutipan saya.
// Generate custom excerpt length
function wpbx_excerpt_length($length) {
return 300;
}
add_filter('excerpt_length', 'wpbx_excerpt_length');
Bagaimana cara saya mengizinkan html <a> <b> <i> <br>
PETUNJUK SELESAI UNTUK NIAT
Saya baru-baru ini menjawab beberapa pertanyaan tentang kutipan, jadi saya akan memberikan penjelasan terperinci yang mencakup sebanyak mungkin.
KATA PENGANTAR
Tampaknya ada beberapa pertanyaan yang muncul dari jawaban ini di mana kode harus pergi, dan jawabannya adalah, itu benar-benar terserah Anda dan bagaimana Anda mau. Ada beberapa opsi untuk menempatkan kode (jika tidak secara eksplisit dinyatakan):
Dalam functions.php tema Anda atau file yang digunakan sebagai file fungsi. Ingat saja ketika Anda melakukan ini, jika tema itu bukan milik Anda, semua perubahan akan hilang ketika Anda meningkatkan tema Anda
Cara yang lebih baik adalah dengan menggunakan kode dalam tema anak. Seperti di atas, dalam file functions.php atau fungsi terkait
Gunakan kode dalam plugin. Ini adalah cara yang disukai karena ini membuat kode tersedia di semua tema. Jika Anda berganti tema, Anda tidak perlu khawatir menulis ulang kode yang sama.
Saya harap ini membersihkan sedikit :-)
HTML TAGS / FORMATTING
the_excerpt()
pertama-tama tidak menerima parameter apa pun, jadi tidak ada yang dapat diteruskan ke sana. Ini adalah fakta yang the_excerpt()
memotong konten menjadi 55 kata, dan semua tag HTML dilucuti sebelum mengembalikan teks. the_excerpt()
terletak di wp-include / post-template.php . Untuk mengizinkan tag HTML tertentu atau semua di kutipan, kutipan baru harus dibuat.
Pertama-tama, fungsi asli harus dihapus terlebih dahulu, dan kemudian fungsi baru perlu dihubungkan get_the_excerpt
. Harap perhatikan, kutipan baru ini masih dapat dipanggil seperti the_excerpt()
pada file templat, tidak perlu mengubahnya. get_the_excerpt()
terletak di wp-include / post-template.php .
Kutipan digunakan wp_trim_excerpt
untuk mengembalikan teks yang dipangkas, jadi kita harus menghapus wp_trim_excerpt
dulu dari filter kutipan. wp_trim_excerpt()
terletak di wp-include / formatting.php , baris 2355. Beginilah caranya:
remove_filter('get_the_excerpt', 'wp_trim_excerpt');
Sekarang Anda dapat menambahkan kutipan baru Anda get_the_excerpt
add_filter('get_the_excerpt', 'wpse_custom_wp_trim_excerpt');
Untuk mengizinkan tag / format html, kita perlu menentukan tag mana yang perlu Anda izinkan. Anda dapat menggunakan strip_tags
pernyataan berikut untuk mencapai itu
$wpse_excerpt = strip_tags($wpse_excerpt, wpse_allowedtags());
Argumen kedua wpse_allowedtags()
adalah fungsi kecil yang digunakan untuk menambahkan tag the_excerpt()
akan memungkinkan. Untuk daftar lengkap tag HTML 5 yang valid, buka dan periksa di sini . Ini fungsinya, tambahkan tag html apa saja yang perlu Anda izinkan / simpan
function wpse_allowedtags() {
// Add custom tags to this string
return '<script>,<style>,<br>,<em>,<i>,<ul>,<ol>,<li>,<a>,<p>,<img>,<video>,<audio>';
}
Jika Anda perlu mengizinkan semua tag HTML, yaitu, tidak ada pengupasan tag apa pun, strips_tags()
fungsinya dapat dihilangkan / dihapus sepenuhnya.
Poin yang perlu diperhatikan, ketika tag html diizinkan, tag ini dihitung sebagai kata, sehingga kata Anda dihitung untuk kutipan dengan tag dan tanpa tag tidak akan sama. Untuk memperbaikinya, Anda harus menghapus tag ini dari jumlah kata yang sebenarnya terlebih dahulu sehingga hanya kata-kata yang dihitung.
Saya telah menulis kutipan yang akan memungkinkan semua tag, hanya menghitung kata sebagai kata, dan menyelesaikan kalimat setelah jumlah kata yang ditentukan (sehingga teks tidak akan dipangkas di tengah kalimat) dan menambahkan teks baca lebih banyak setelah kata terakhir .
Ini kode lengkapnya
function wpse_allowedtags() {
// Add custom tags to this string
return '<script>,<style>,<br>,<em>,<i>,<ul>,<ol>,<li>,<a>,<p>,<img>,<video>,<audio>';
}
if ( ! function_exists( 'wpse_custom_wp_trim_excerpt' ) ) :
function wpse_custom_wp_trim_excerpt($wpse_excerpt) {
$raw_excerpt = $wpse_excerpt;
if ( '' == $wpse_excerpt ) {
$wpse_excerpt = get_the_content('');
$wpse_excerpt = strip_shortcodes( $wpse_excerpt );
$wpse_excerpt = apply_filters('the_content', $wpse_excerpt);
$wpse_excerpt = str_replace(']]>', ']]>', $wpse_excerpt);
$wpse_excerpt = strip_tags($wpse_excerpt, wpse_allowedtags()); /*IF you need to allow just certain tags. Delete if all tags are allowed */
//Set the excerpt word count and only break after sentence is complete.
$excerpt_word_count = 75;
$excerpt_length = apply_filters('excerpt_length', $excerpt_word_count);
$tokens = array();
$excerptOutput = '';
$count = 0;
// Divide the string into tokens; HTML tags, or words, followed by any whitespace
preg_match_all('/(<[^>]+>|[^<>\s]+)\s*/u', $wpse_excerpt, $tokens);
foreach ($tokens[0] as $token) {
if ($count >= $excerpt_length && preg_match('/[\,\;\?\.\!]\s*$/uS', $token)) {
// Limit reached, continue until , ; ? . or ! occur at the end
$excerptOutput .= trim($token);
break;
}
// Add words to complete sentence
$count++;
// Append what's left of the token
$excerptOutput .= $token;
}
$wpse_excerpt = trim(force_balance_tags($excerptOutput));
$excerpt_end = ' <a href="'. esc_url( get_permalink() ) . '">' . ' » ' . sprintf(__( 'Read more about: %s »', 'wpse' ), get_the_title()) . '</a>';
$excerpt_more = apply_filters('excerpt_more', ' ' . $excerpt_end);
//$pos = strrpos($wpse_excerpt, '</');
//if ($pos !== false)
// Inside last HTML tag
//$wpse_excerpt = substr_replace($wpse_excerpt, $excerpt_end, $pos, 0); /* Add read more next to last word */
//else
// After the content
$wpse_excerpt .= $excerpt_more; /*Add read more in new paragraph */
return $wpse_excerpt;
}
return apply_filters('wpse_custom_wp_trim_excerpt', $wpse_excerpt, $raw_excerpt);
}
endif;
remove_filter('get_the_excerpt', 'wp_trim_excerpt');
add_filter('get_the_excerpt', 'wpse_custom_wp_trim_excerpt');
Anda cukup menghapus '//' dari fungsi yang Anda perlukan tambahan.
PANJANG EXCERPT KUSTOM
Terkadang Anda perlu menampilkan kutipan sederhana dengan panjang yang berbeda dan tidak layak untuk menulis kutipan untuk setiap postingan / fungsi / halaman. Ini adalah fungsi kecil kecil yang baguswp_trim_words
function wpse_custom_excerpts($limit) {
return wp_trim_words(get_the_excerpt(), $limit, '<a href="'. esc_url( get_permalink() ) . '">' . ' …' . __( 'Read more »', 'wpse' ) . '</a>');
}
Apa fungsi kecil ini adalah mengambil get_the_excerpt
, memangkasnya untuk $limit
ditetapkan oleh pengguna, dan mengembalikan teks dengan tautan baca lebih lanjut di akhir.
Anda dapat memanggil kutipan ini dengan mengikuti di templat Anda
echo wpse_custom_excerpts($limit);
di mana $limit
akan menjadi jumlah kata Anda, jadi kutipan dari 30 kata akan menjadi
echo wpse_custom_excerpts(30);
Hanya satu hal yang perlu diingat di sini, jika Anda menetapkan batas Anda lebih dari 55 kata, hanya 55 kata yang akan dikembalikan karena kutipan tersebut hanya memiliki panjang 55 kata. Jika kutipan lebih lama dibutuhkan, gunakan get_the_content
saja.
PANJANG EXCERPT KUSTOM
Jika Anda hanya perlu mengubah panjangnya the_excerpt()
, Anda dapat menggunakan fungsi berikut
function wpse_excerpt_length( $length ) {
return 20;
}
add_filter( 'excerpt_length', 'wpse_excerpt_length', 999 );
Ingat, Anda harus menetapkan prioritas lebih besar dari 10 sehingga fungsi kustom Anda dieksekusi setelah default.
TAMBAH BACA LEBIH BANYAK LINK
Semua teks yang dikembalikan oleh kutipan memiliki kebencian [...]
di akhir yang tidak dapat diklik. Untuk menambahkan lebih banyak teks sebagai ganti hellips, gunakan fungsi ini
function wpse_excerpt_more( $more ) {
return ' <a class="read-more" href="'. get_permalink( get_the_ID() ) . '">' . __('Read More', 'your-text-domain') . '</a>';
}
add_filter( 'excerpt_more', 'wpse_excerpt_more' );
SUNTING
Kutipan paragraf pertama
Saya ingin menyimpan ini lengkap, jadi di sini adalah kutipan yang dipangkas setelah paragraf pertama.
Berikut adalah fungsi yang menjaga tag HTML tetap aktif, menambahkan tautan "Baca Selengkapnya" di akhir kutipan dan memotong kutipan setelah paragraf pertama.
if ( ! function_exists( 'wpse0001_custom_wp_trim_excerpt' ) ) :
function wpse0001_custom_wp_trim_excerpt($wpse0001_excerpt) {
global $post;
$raw_excerpt = $wpse0001_excerpt;
if ( '' == $wpse0001_excerpt ) {
$wpse0001_excerpt = get_the_content('');
$wpse0001_excerpt = strip_shortcodes( $wpse0001_excerpt );
$wpse0001_excerpt = apply_filters('the_content', $wpse0001_excerpt);
$wpse0001_excerpt = substr( $wpse0001_excerpt, 0, strpos( $wpse0001_excerpt, '</p>' ) + 4 );
$wpse0001_excerpt = str_replace(']]>', ']]>', $wpse0001_excerpt);
$excerpt_end = ' <a href="'. esc_url( get_permalink() ) . '">' . ' » ' . sprintf(__( 'Read more about: %s »', 'pietergoosen' ), get_the_title()) . '</a>';
$excerpt_more = apply_filters('excerpt_more', ' ' . $excerpt_end);
//$pos = strrpos($wpse0001_excerpt, '</');
//if ($pos !== false)
// Inside last HTML tag
//$wpse0001_excerpt = substr_replace($wpse0001_excerpt, $excerpt_end, $pos, 0);
//else
// After the content
$wpse0001_excerpt .= $excerpt_more;
return $wpse0001_excerpt;
}
return apply_filters('wpse0001_custom_wp_trim_excerpt', $wpse0001_excerpt, $raw_excerpt);
}
endif;
remove_filter('get_the_excerpt', 'wp_trim_excerpt');
add_filter('get_the_excerpt', 'wpse0001_custom_wp_trim_excerpt');
Bagi siapa pun yang membutuhkan solusi untuk tidak menampilkan tautan baca lebih lanjut setelah kutipan ketika kutipan lebih pendek dari jumlah kata yang ditetapkan, silakan lihat pertanyaan dan jawaban berikut
function wpse_allowedtags() { // Add custom tags to this string return '<script>,<style>,<br>,<em>,<i>,<ul>,<ol>,<li>,<a>,<p>,<img>,<video>,<audio>'; }
bingungfunctions.php
. Anda dapat menambahkannya tepatif ( ! function_exists( 'wpse_custom_wp_trim_excerpt' ) ) :
di atas difunctions.php
Tambahkan lebih banyak tag jika perlu
$allowed_tags = ...
Dari: http://bacsoftwareconsulting.com/blog/index.php/wordpress-cat/how-to-preserve-html-tags-in-wordpress-excerpt-without-a-plugin/
sumber
Anda juga dapat menambahkan editor teks kaya untuk kutipan, menambahkan kode di bawah ini dalam file plugin atau file function.php tema dan Anda akan dapat melihat editor HTML untuk kutipan. Selain itu, itu akan membuat kutipan dalam format HTML juga. #tepuk tangan
Saya telah menyalin ini dari suatu tempat tetapi tidak ingat sumbernya. Saya menggunakan ini di semua proyek saya dan berfungsi.
sumber