Saya merasa seperti kehilangan sesuatu yang sangat jelas di sini, tapi sepertinya saya tidak bisa membuat WordPress bekerja sama.
Saya membuat tag OG Facebook dengan sebuah fungsi. Semuanya berfungsi dengan baik, kecuali untuk kutipannya.
Sejak penghentian get_the_excerpt($post->ID)
, apakah ada cara lain untuk membuat kutipan tanpa harus membuat loop baru? Rasanya berlebihan bagi saya.
Insting pertama saya adalah menggunakan apply_filters()
:
$description = apply_filters('the_excerpt', get_post($post->ID)->post_content);
Itu memberi saya posting lengkap, lengkap dengan konten berformat HTML. Oke, pasti salah. Jadi saya mencoba ide logis berikutnya:
$description = apply_filters('get_the_excerpt', get_post($post->ID)->post_content);
Tidak ada dadu. Sekarang tidak ada HTML, tetapi masih tulisan lengkap (yang benar-benar membingungkan).
Oke tidak masalah. Mari kita lewati semua barang mewah dan pergi untuk entri yang dipangkas:
$description = wp_trim_excerpt(get_post($post->ID)->post_content);
Tidak ada perubahan.
Jadi, pertanyaan saya adalah ini: apa yang sedang terjadi? Apakah ada sesuatu yang saya lewatkan, di sini?
Saya masuk ke inti WP untuk menemukan cara the_excerpt()
kerjanya, dan tampaknya identik dengan panggilan saya:
/**
* Display the post excerpt.
*
* @since 0.71
* @uses apply_filters() Calls 'the_excerpt' hook on post excerpt.
*/
function the_excerpt() {
echo apply_filters('the_excerpt', get_the_excerpt());
}
Saya punya beberapa pertanyaan berdasarkan temuan saya:
- Mengapa filter tidak berlaku seperti yang diharapkan?
- Apakah ada cara untuk mendapatkan kutipan di luar loop tanpa membuat loop baru?
- Apakah saya gila?
Terima kasih sebelumnya untuk melihatnya. Saya cukup bingung, di sini.
get_the_excerpt()
tidak ditinggalkan, hanya param tambahan yang dulu diteruskan tidak lagi digunakan.Jawaban:
Ternyata jawabannya ada di
wp_trim_excerpt()
.Itu didefinisikan dalam
wp-includes/functions.php:1879
:Jadi setiap teks yang dikirimkan tidak diproses; ini hanya berfungsi jika dipanggil dengan parameter kosong.
Untuk mengatasi ini, saya menambahkan filter cepat ke tema saya yang memecahkan masalah:
Ini agak berlebihan, tapi saya lebih suka daripada membuka loop baru setiap kali saya ingin menghasilkan kutipan.
sumber
get_the_title($post->ID)
yang tersedia. Baris terakhir kode adalah$description = wp_trim_excerpt(get_post($post->ID)->post_content);
$content = apply_filters( 'rw_trim_excerpt', $content );
dan$content = rw_trim_excerpt($content);
, tetapi tak satu pun dari ini bekerja (mantan tidak memangkas output dan kemudian menghasilkan kesalahan).get_the_excerpt
penanganan untuk meniruthe_excerpt
, sehingga Anda dapat menghubungi:apply_filters('get_the_excerpt', $content);
.Mencoba:
Lihat:
get_post
Codex untuk semua anggota kembali yang tersedia.sumber
get_the_excerpt()
tidak meniru itu, periksa sumbernya, itu hanya mengakses variabel anggota$post
yang adapost_excerpt
. Lihat juga tautan kodeks dalam jawabannya.the_excerpt
: "itu akan menampilkan kutipan otomatis yang merujuk pada 55 kata pertama dari konten posting." Saya ingin meniru perilaku itu di luar loop.Anda dapat menggunakan fungsi khusus saya untuk memfilter konten (itu dari NARGA Framework )
Potong pendek kode otomatis, kode HTML, hapus [...], tambahkan teks "Baca Selengkapnya" (diterjemahkan)
sumber