Mengapa seseorang tidak bisa mendapatkan kutipan dengan ID seperti dengan judul dan sebagian besar elemen lainnya.
misalnya. get_the_excerpt (ID). Saya tahu bagaimana menggunakannya dengan fungsi $ post-> post_excerpt tapi itu tidak mengembalikan bagian dari konten jika tidak ada kutipan yang dimasukkan, tidak menghasilkan apa-apa.
Jadi yang saya coba lakukan adalah mendapatkan kutipan dengan ID jika ada kutipan, dan jika tidak ada kutipan dengan ID itu tetapi ada beberapa konten, untuk mendapatkan beberapa konten sebagai gantinya.
Bagaimana orang melakukannya?
Ada ide,
Luar biasa ...
EDIT -
Ulangi Kode Sumber sebagaimana Diminta.
<?php $stories = get_posts('category_name=feedback&numberposts=4');
foreach ($stories as $post) :
$title = $post->post_title;
$excerpt = get_the_excerpt_id($post->ID);
$thumb = get_the_post_thumbnail($post->ID,array(60, 60, true));?>
<div class="textstandard_white" style="font-size:14px; line-height:22px; padding-top:10px;"><b><a href="<?php echo get_permalink($post->ID);?>"><?php echo $title;?></a></b></div><div align="left" style="height:18px; width:82px; background:url(http://www.divethegap.com/update/z-images/structure/icons/stars.png) left top no-repeat;"><div id="stars<?php echo $post->ID;?>" align="left" style="height:18px; background:url(http://www.divethegap.com/update/z-images/structure/icons/stars_glow.png) left top no-repeat;">
</div>
</div>
<script type="text/javascript">
var width<?php echo $post->ID;?> = ((<?php
$Rating = get_post_meta($post->ID, "Rating", true);
echo $Rating;
?> * 20) + '%')
$('#stars<?php echo $post->ID;?>').css('width', width<?php echo $post->ID;?>);
</script><div class="textstandard_white" style="padding-top:6px; font-size:10px; color:#BBB; padding-bottom:10px; border-bottom:1px dotted #BBB; min-height:70px;"><div style="float:left; padding-right:6px; padding-bottom:6px;"><div style="background:#FFF; border:1px solid #FFF;
border-radius: 4px; -moz-border-radius: 4px ; -webkit-border-radius: 4px; padding:4px;"><a href="<?php echo get_permalink($post->ID);?>"><?php echo $thumb;?></a></div></div>
<?php echo $excerpt;?></div>
<?php endforeach;?>
Jawaban:
Hai @Robin I. Knight:
Saya melihat
get_the_excerpt()
sebagai fungsi dengan desain warisan. Seiring dengan meningkatnya penggunaan WordPress, ada banyak kasus penggunaan baru yang tidak sesuai, tetapi fungsi yang lebih baru untuk mendapatkan data berbeda dilakukan. Salah satu contoh adalah penggunaan$args
berbagai opsi fungsi yang sekarang sering digunakan .Tetapi mudah untuk memperbaikinya untuk kebutuhan Anda. Berikut adalah fungsi alternatif yang dapat Anda gunakan yang dapat Anda tempatkan di
functions.php
file tema Anda :Saya belum mengujinya tetapi cukup yakin saya melakukannya dengan benar. Jika ini tidak memenuhi kebutuhan Anda, mohon jelaskan dan mungkin saya dapat membuat saran lain.
sumber
setup_postdata($post)
di awal loop Anda, seperti yang disarankan @Rarst. Jika itu tidak berhasil, mungkin itu adalah plugin yang harus Anda nonaktifkan; Sudahkah Anda mencobanya? Dan Anda mungkin tidak ingin menyebutnyaget_the_excerpt_id()
karena WordPress dapat menambahkan fungsi itu di masa depan dan menghancurkan situs Anda. Dan Anda mungkin bisa melakukannya tanpa fungsi di loop dengan menggunakanforeach($stories as $story): global $post; $post = $story;
sebagai gantinya.Mekanisme kutipan sangat membingungkan. Ini bukan jawaban yang tepat untuk pertanyaan Anda, tetapi secara umum jika Anda perlu membuat tag templat, khusus untuk Loop, bekerja dengan array yang dikembalikan oleh
get_posts()
Anda dapat meniru Loop seperti ini:sumber
setup_postdata()
kueri global tidak terpengaruh dan hanya data pos perlu direset.Ada fungsi baru sejak 3.3.0: wp_trim_words
Saya menggunakannya di luar loop sebagai berikut:
Ini tidak harus bingung dengan wp_trim_excerpt yang tampaknya hanya berfungsi di dalam loop, karena ia memanggil the_content () secara internal.
sumber
Hanya untuk menambah jawaban MikeSchinkel, yang karena alasan tertentu tidak akan berhasil untuk saya. Saya harus menambahkan baris setup_postdata untuk membuatnya berfungsi.
}
Saya berasumsi jika Anda menggunakan ini di luar loop maka seharusnya tidak mengganggu setup_postdata lain yang terjadi.
Tepuk tangan
sumber
Membangun jawaban @ Maxime, apakah ini akan berhasil?
Tampaknya cukup mudah bagi saya, tetapi saya bertanya-tanya apakah saya kehilangan sesuatu.
sumber
Jika SEMUA posting Anda memiliki
<!--more-->
tag, maka Anda dapat menggunakan yang berikut dengan kode Anda di atas:Tentu saja jika Anda memiliki posting yang tidak memiliki
<!--more-->
tag, mereka akan ditampilkan secara keseluruhan. Bekerja dalam situasi saya, tetapi tidak untuk semua ...sumber
Saya melihat
get_the_excerpt()
sebagai fungsi dengan desain warisan. Seiring dengan meningkatnya penggunaan WordPress, ada banyak kasus penggunaan baru yang tidak sesuai, tetapi fungsi yang lebih baru untuk mendapatkan data berbeda dilakukan. Salah satu contoh adalah penggunaan$args
berbagai opsi fungsi yang sekarang sering digunakan .Tetapi mudah untuk memperbaikinya untuk kebutuhan Anda. Berikut adalah fungsi alternatif yang dapat Anda gunakan yang dapat Anda tempatkan di
functions.php
file tema Anda :Hanya untuk menambah jawaban MikeSchinkel, yang karena alasan tertentu tidak akan berhasil untuk saya. Saya harus menambahkan baris setup_postdata untuk membuatnya berfungsi.
sumber
wp_reset_post_data()
bekerja di dalam loop?Ini adalah dua baris kecil yang saya gunakan banyak menggunakan wp_trim_words . Saya terus-menerus menemukan diri saya membutuhkan singkatan dan membaca lebih banyak fungsi di luar loop. Orang lain mungkin menganggap ini berguna. Jadi ini yang saya gunakan untuk:
Saya menempatkan inline ini, langsung di template kustom yang saya edit.
Kerusakan
1. Konten kutipan
Dapatkan Kutipan dengan ID Posting tetapi, dapatkan Konten Posting Jika tidak ada Kutipan yang ditetapkan.
Saya menggunakan steno If / Else PHP .
2. Panjang kata
Atur jumlah kata dalam Kutipan ke 20
3. Pilih Konten ReadMore (Tautan / Teks)
Saya biasa
$dapost->guid
mendapatkan URL, karena saya tidak perlu URL yang ramah, dan ingin menghindari panggilan lain ke DB. Anda selalu dapat menggunakan get_the_permalink.Lihat wp_trim_words di Dokumentasi Wordpress.
sumber
Ini bekerja untuk saya:
sumber
Dari WP 4.5.0 dimungkinkan menggunakan ID pos sebagai parameter
get_the_excerpt( $post->ID )
Sumber: https://developer.wordpress.org/reference/functions/get_the_excerpt/
sumber
Ini lebih cepat:
sumber