Saya memiliki kode yang memanggil get_the_title()
dan berfungsi, tetapi get_the_excerpt()
kembali kosong. Bagaimana saya bisa membuatnya bekerja?
Kode ini ada di dalam plugin yang disebut "WP Facebook Open Graph protocol". Inilah bagian yang ingin saya ubah:
if (is_singular('post')) {
if (has_excerpt($post->ID)) {
echo "\t<meta property='og:description' content='".esc_attr(strip_tags(get_the_excerpt($post->ID)))."' />\n";
}else{
echo "\t<meta property='og:description' content='". [?] ."' />\n";
}
}else{
echo "\t<meta property='og:description' content='".get_bloginfo('description')."' />\n";
}
Di sini, has_excerpt
selalu gagal, dan get_the_excerpt($post->ID)
tidak berfungsi lagi (usang).
Jadi, bagaimana saya bisa menampilkan kutipan di sana?
ps: Saya juga menggunakan plugin "Kutipan Lanjutan"
my_excerpt($post->post_content, get_the_excerpt())
dan menggunakanmy_excerpt()
fungsi dari wordpress.stackexchange.com/questions/6961/…the_post()
(berfungsi pada templat posting tunggal juga) sebelum Anda memanggilnyaget_the_excerpt()
akan mengatur data yang diperlukan untuk Anda.Jawaban:
Saya menemukan pertanyaan ini ketika mencari cara melakukan ini tanpa objek posting.
Penelitian tambahan saya menemukan teknik apik ini:
$text = apply_filters('the_excerpt', get_post_field('post_excerpt', $post_id));
sumber
$post
variabel global.$post_id
diatur (berapakah nilainya$post_id
? DAN$post_id
adalah ID kiriman yang sah dan sah.Karena tampaknya Anda sudah memiliki objek posting yang Anda butuhkan kutipannya, Anda bisa memaksanya bekerja:
The
setup_postdata()
fungsi akan globalisasi yang$post
objek dan membuatnya tersedia untuk fungsi loop tua biasa. Saat Anda berada di dalam loop, Anda meneleponthe_post()
dan mengatur semuanya untuk Anda ... di luar loop yang Anda butuhkan untuk memaksanya secara manual.sumber
$post
variabel global , jika tidak, fungsi-fungsi sepertithe_title()
tidak berfungsi dengan baik."global $post;$post = $post_object;setup_postdata( $post );$excerpt = get_the_excerpt();
setup_postdata($post);
FTW !!!!Coba ini:
Buat fungsi baru di functions.php dan kemudian panggil dari mana saja.
Berikut adalah pos yang menjelaskan kode.
sumber
Sekarang Anda cukup menggunakan
get_the_excerpt( $postID )
fungsinya. Sejak: WordPress 4.5.0 memperkenalkan$post
parameter.sumber
wp_trim_excerpt
filter akan mengembalikan kutipan untuk posting saat ini.mendapatkannya menggunakan
my_excerpt($post->post_content, get_the_excerpt())
dan menggunakanmy_excerpt()
fungsi dari Menggunakan wp_trim_excerpt untuk mendapatkan the_excerpt () di luar loopsumber
Jika Anda tidak memiliki objek posting, berikut ini adalah fungsi pendek seperti dari Withers.
sumber
Ini untuk saat Anda ingin menggunakan di
get_the_excerpt()
luar loop:sumber
Jika Anda ingin membuat kutipan secara otomatis dari konten dalam satu baris - Anda dapat menggunakan
wp_trim_words
fungsi seperti ini:sumber
sumber